Выдаліць ліст (:) з радка

У мяне ёсць радкі як імя:, Патэлефануй:, Тэлефон: .... і гэтак далей у маім стале. Я вучуся jQuery і быў у стане атрымаць доступ да тэксту. Мой падручнік выкарыстоўваецца падрэзаць() , каб выдаліць пробельные. Але я хачу выдаліць ўшчыльняльнае «:» з канца кожнага радка (і так, яна заўсёды ляжыць у рэшце рэшт пасля выкліку падрэзаць() метад). Такім чынам, як дасягнуць гэтага.

Яго мой код:

<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>

дыферэнт ( «:») не дапамагло ...

4
Калі вы хочаце выкарыстоўваць JQuery, каб зрабіць гэта, і гэта заўсёды : , вы можаце проста адрэзаць апошні сімвал: jQuery "> stackoverflow.com/questions/4308934/…
дададзена аўтар wkl, крыніца

10 адказы

Вы можаце замяніць усе : сімвалаў:

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

Або выкарыстаць зручны RTRIM() <�код /> функцыі:

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
дададзена
Гэты код мяркуе, што гэты апошні сімвал будзе заўсёды двукроп'е, які не заўсёды можа быць праўдай. Гэта не абрэзаць заднія калон, адсякаецца ад любога знака на канцы.
дададзена аўтар Peter Olson, крыніца
См адрэдагаваны код.
дададзена аўтар Blender, крыніца
@Shautieh: не, ён усё яшчэ абразае : , я проста забыўся дадаць аргумент. Абноўлены код працуе.
дададзена аўтар Blender, крыніца
замяніць б замяніць толькі першы асобнік:
дададзена аўтар Jayendra, крыніца
Тым не менш не так. Ваша RTRIM функцыя не прымае ніякіх аргументаў, так што не мае сэнсу называць яго «:». Што яна робіць гэта толькі выдаліць прабелы (\ S) у канцы радка, калі такія маюцца.
дададзена аўтар Shautieh, крыніца
ня @Blender: Вы забыліся аргумент і выкарыстоўваецца \ с замест ва ўсіх выпадках, ды не: гэта не «яшчэ Стрым:». Абноўлены код сапраўды дакладна, хоць.
дададзена аўтар Shautieh, крыніца
Shautieh правільна; убачыць jsfiddle ў маім адказе.
дададзена аўтар weir, крыніца

У гэтым выпадку проста выкарыстоўваць звычайны стары JavaScript замяніць або < код> зиЬзЬг метады.

Вы можаце таксама выкарыстоўваць рэгулярны выраз, якое шукае двукроп'е ў якасці апошняга знака (сімвал, які папярэднічае рэгулярнага выраз заканчэння тэрміну радкі якар " $ ").

"hi:".replace(/:$/, "")
<�Р> прывітанне </р>
"hi".replace(/:$/, "")
<�Р> прывітанне </р>
"h:i".replace(/:$/, "")
<�Р> ч: я </р>

Гэта спрошчаная, рядный версія RTRIM функцыі ў адказ у Blender.

EDIT: Вось тэст скрыпка для Blender, скарэкціраванага RTRIM функцыі. Звярніце ўвагу, што яго RegExp будзе выдаліць некалькі уваходжанняў зададзенага сімвала, калі радок заканчваецца некалькімі асобнікамі ёй паслядоўна (напрыклад, тлустым шрыфтам ніжэй).

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

<�Р> ўваход = ':: A: с.о .:' Выхад = ':: A: сд'; уваход = «Прывітанне:» Выхад = «Прывітанне»; <�Моцны> ўваход = 'Прывітанне :::' Выхад = 'Прывітанне' </моцны>; уваход = «Прывітанне» Выхад = «Прывітанне»; уваход = "ч: я» = «выходных ч: я» </р>
5
дададзена
Так, глядзіце тут: w3schools.com/jsref/jsref_substr.asp
дададзена аўтар halfer, крыніца
дзякуючы; ўжо звязаны ў рэдагаванні непасрэдна перад вывешаным.
дададзена аўтар weir, крыніца

Каб здрабніць апошні сімвал радкі выкарыстання string.slice (0, -1)

1
дададзена

Гэта правярае, калі апошні сімвал двукроп'е. Калі гэта апошні сімвал выдаляецца.

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

Калі можа быць некалькі завяршальных двукроп'я, вы можаце замяніць , калі з , а , напрыклад:

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

Можна нават зрабіць агульны падрэзаць <�код /> функцыю, якая прымае радок і сімвал, і абразае хваставыя асобнікі гэтага сімвала:

var trim = function(str, chr) {
  while (str[str.length - 1] === ":") {
    str = str.slice(0, -1);
  }
  return str;
}
0
дададзена
var a="name:";
var b=a.split(":");
alert(b[0]);
0
дададзена

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
дададзена

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
дададзена
Гэта выкліча дзіўны баг, калі апошні знак не з'яўляецца двукроп'е. <�Код> LastIndexOf будзе вяртаць -1 калі знак не знойдзены, і гэта можа прывесці да непажаданага усячэньню радка.
дададзена аўтар Peter Olson, крыніца
 function trim(str) {
       str = str.replace(/^:*/,"");
       return str.replace(/:*$/,"");
 }
0
дададзена

<�Код> вул = str.substring (0, str.lastIndexOf ( ":"));

Звярніце ўвагу, што гэта здымае усё, што ад апошняга : у канцы радка (напрыклад, любы прабел пасля : ).

0
дададзена
var myStr = "something:";
myStr = myStr.slice(0, -1);
0
дададзена