$(function () { $(':input[type=text], textarea').each ( function () { var newText = 'Please enter"> $(function () { $(':input[type=text], textarea').each ( function () { var newText = 'Please enter"> $(function () { $(':input[type=text], textarea').each ( function () { var newText = 'Please enter" />

Bir mag'lubiyatdan (:) bir xat olib tashlang

Mening ismim :, Chaqiruv :, Telefon: .... va shunga o'xshash jadvallarim bor. Men jQuery o'rganyapman va matnga kirishga muvaffaq bo'ldim. Ta'limotim har qanday bo'shliqni olib tashlash uchun trim() dan foydalangan. Lekin, har bir mag'lubiyatning oxiridan (va ha, har doim ham trim() usulini chaqirganidan so'ng, oxirida yotadi) ":" olib tashlash istayman. Bunga qanday erishish mumkin?

Mening kodim:

<script type="text/javascript">
    $(function ()
    {
        $(':input[type=text], textarea').each
    (
    function ()
    {
        var newText = 'Please enter your ' +
    $(this).parent().prev().text().toLowerCase().trim();
        $(this).attr('value', newText);
    }).one('focus', function ()
    {
        this.value = '', this.className = ''
    }).addClass('Watermark').css('width', '300px');
    });
</script>

trim (":") yordam bermadi ...

4
Agar siz jQuery'dan foydalanishni istasangiz va har doim bu : bo'lsa, oxirgi belgini o'chirib qo'yishingiz mumkin: jQuery yordamida mag'lubiyatdan so'nggi belgini o'chirish "> stackoverflow.com/questions/4308934/…
qo'shib qo'ydi muallif wkl, manba

10 javoblar

Barcha : belgilarni o'zgartirishingiz mumkin:

var str = '::a:sd:';
str = str.replace(/:/g,'');//str = 'asd';

Yoki qulay rtrim() funktsiyasidan foydalaning:

String.prototype.rtrim = function(character) {
    var re = new RegExp(character + '*$', 'g');
    return this.replace(re, '');
};

var str = '::a:sd:';
str = str.rtrim(':');//str = '::a:sd';
10
qo'shib qo'ydi
Ushbu kod shu oxirgi belgilarning har doim ham to'g'ri bo'lmasligiga ishonch hosil qiladi. Bu nuqta oxirida hech qanday belgi o'chirilmaydi.
qo'shib qo'ydi muallif Peter Olson, manba
O'zgartirilgan kodni ko'ring.
qo'shib qo'ydi muallif Blender, manba
@Shautieh: yo'q, u hali ham : tagini o'zgartiradi, men faqat argument kiritishni unutgan edim. Yangilangan kod ishlaydi.
qo'shib qo'ydi muallif Blender, manba
faqat quyidagi birinchi o'rnini almashtiradi:
qo'shib qo'ydi muallif Jayendra, manba
Hali ham noto'g'ri. Sizning vazifangiz hech qanday dalil keltirmaydi, shuning uchun uni ":" bilan chaqirish mantiqiy emas. Nima qilsa, satr oxirida bo'sh joy belgilarini (\ s) olib tashlash mumkin.
qo'shib qo'ydi muallif Shautieh, manba
@Blender: Siz argumentni unutdingiz va hamma hollarda uning o'rniga foydalanasiz, shuning uchun: u "hali ham strim:" emas. Yangilangan kod, albatta, to'g'ri.
qo'shib qo'ydi muallif Shautieh, manba
Shautieh to'g'ri; javobimdagi jsfiddlega qarang.
qo'shib qo'ydi muallif weir, manba

Bu holda oddiygina eski JavaScript-dan foydalaning o'zgartirish yoki < substr usullaridan foydalaning.

Bundan tashqari, oxirgi belgini (regexp-ning oxirigacha bo'lgan belgini çapa " $ ").

"hi:".replace(/:$/, "")

Xizma

"hi".replace(/:$/, "")

Xizma

"h:i".replace(/:$/, "")

h: i

Bu Blender javobida rtrim funktsiyasining soddalashtirilgan, satrli versiyasi.

EDIT: Blenderning tuzatilgan rtrim funktsiyasi uchun test fiddle. Uning regExp ketma-ketligi bilan bir nechta misollari bilan tugagan bo'lsa (misol quyida qalinlangan) bo'lsa, ko'rsatilgan belgining bir necha marta o'chiriladi.

http://jsfiddle.net/fGrPb/5/

kirish = ':: a: sd:' output = ':: a: sd'; input = 'hi:' output = 'hi'; kirish = 'hi :::' output = 'hi' ; input = 'hi' output = 'hi'; input = 'h: i' output = 'h: i'

5
qo'shib qo'ydi
qo'shib qo'ydi muallif halfer, manba
Rahmat; siz allaqachon chop etishdan oldin tahrir qilingan.
qo'shib qo'ydi muallif weir, manba

Jildning so'nggi xarakatini chop qilish uchun string.slice (0, -1)

1
qo'shib qo'ydi

Bu oxirgi belgining nuqta belgisi ekanligini tekshiradi. Agar shunday bo'lsa, oxirgi belgi o'chiriladi.

if (str[str.length - 1] === ":") {
  str = str.slice(0, -1);
}

Agar bir nechta ketma-ketlikdagi nuqta bo'lishi mumkin bo'lsa, bo'lsa bo'lsa bo'lsa bilan o'zgartirilishi mumkin:

while (str[str.length - 1] === ":") {
  str = str.slice(0, -1);
}

Hatto mag'lubiyatni va belgini qabul qiladigan va ushbu belgi o'rnini bosadigan umumiy trim funktsiyasini yaratishingiz mumkin:

var trim = function(str, chr) {
  while (str[str.length - 1] === ":") {
    str = str.slice(0, -1);
  }
  return str;
}
0
qo'shib qo'ydi
var a="name:";
var b=a.split(":");
alert(b[0]);
0
qo'shib qo'ydi

You can use a regular expression to remove the colon (:).


Replace one instance:

var with_colon = 'Stuff:';
var regex = /([^:]*):/; 
var without_colon = regex.exec(with_colon)[1];
alert(without_colon);

Result: Stuff


Replace all instances:

var with_colon = 'Stuff: Things:'; 
var without_colon = with_colon.replace(/([^:]*):/g,'$1'); 
alert(without_colon);

Result: Stuff Things

0
qo'shib qo'ydi

one way is to use lastIndexOf

var str='Name:, Call:, Phone:';
var index=str.lastIndexOf(":");
alert(index);
var s=str.substring(0,index);
alert(s);

DEMO

0
qo'shib qo'ydi
Bu so'nggi belgi ikkilamchi bo'lmasa, bu g'alati xatoga sabab bo'ladi. Belgisi topilmasa lastIndexOf -1 qaytadi va bu mag'lubiyatning kiruvchi kesilmog'iga olib kelishi mumkin.
qo'shib qo'ydi muallif Peter Olson, manba
 function trim(str) {
       str = str.replace(/^:*/,"");
       return str.replace(/:*$/,"");
 }
0
qo'shib qo'ydi

str = str.substring (0, str.lastIndexOf (":"));

Shuni esda tutingki, har bir narsani so'nggi : dan mag'lubiyatning oxirigacha (masalan, : dan so'ng har qanday bo'sh joy) o'chiradi.

0
qo'shib qo'ydi
var myStr = "something:";
myStr = myStr.slice(0, -1);
0
qo'shib qo'ydi
Javascript UZB
Javascript UZB
99 ishtirokchilar

@js_uzb @vuejs_uz @react_uz @nodejs_uz @angular_uz @ngTashkent @yiiframework_uz @laravel_uz @linux_uzbek @python_uz @swift_uzb —————— @uzdevgroup @UzGeeksGroup ——— @UzDev_Jobs @jobs_uzb