Жолды (:) жолдан шығарыңыз

Менің атым сияқты жолдар бар: Қоңырау :, Телефон: .... және т.б. Мен jQuery үйрендім және мәтінге қол жеткіздім. Менің оқуым кез келген бос орындарды жою үшін trim() пайдаланды. Бірақ әр жолдың соңынан (және иә, әрдайым trim() әдісін шақырған соң аяқтайды) «» алып тастағым келеді. Оны қалай жетуге болады.

Оның коды:

<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 («:») көмектесті ...

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, көзі
Шотие дұрыс; менің жауабымды қараңыз.
қосылды автор weir, көзі

Бұл жағдайда қарапайым ескі JavaScript-ні қолданыңыз ауыстыру немесе < код> substr әдістерін қараңыз.

Сондай-ақ, соңғы таңбаны (жолдың соңына дейінгі таңба якорь » $ «).

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

hi

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

hi

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

h: i

Бұл блендер жауапында rtrim функциясының кірістірілген нұсқасы.

EDIT: Міне, Blender-ның түзетілген rtrim функциясы үшін сынақ скрипті. Айта кету керек, оның RegExp белгілі бір түртіндінің бірнеше қайталануын жояды, егер оның жолы бірнеше мысалмен аяқталады (мысал төменде көрсетілген).

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

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

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);
}

Сіз сондай-ақ жолды және таңбаны қабылдайтын және осы таңбаның соңғы даналарын қоятын жалпы trim функциясын жасай аласыз:

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 = str.substring (0, str.lastIndexOf («:»));

Бұл соңғы : -ден жолдың соңына дейін барлық жояды (мысалы, : кез келген бос орын).

0
қосылды
var myStr = "something:";
myStr = myStr.slice(0, -1);
0
қосылды