2010-06-21 4 views

ответ

8

из http://en.wikipedia.org/wiki/Trim_%28programming%29

String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/g, ""); 
}; 

Это добавит декоративную функцию строковых переменных, которые будут устранять пробелы из начала и конца строки.

При этом вы можете делать такие вещи, как:

var mystr = "this is my string "; // including newlines 
mystr = mystr.trim(); 
+7

Если все @ lam3r4370 хочет сделать это, замените один завершающий символ '\ n', замените'/^ \ s + \ \ s + $/g' выше на '/ \ n $ /'. Кроме того, если вы планируете распространять этот код или размещать его там, где он может разделить пространство с JS от других пользователей, я бы рекомендовал вам просто создать общую функцию 'trim', а не использовать' String.prototype'. Хотя это очень распространенная практика, вы можете вызвать проблемы для других, добавив методы в основные объекты JS. – Andrew

+0

@ Аndrew, ваш путь изменяет положение курсора. @John, your's - перемещает текст в начале текстового поля. – lam3r4370

+0

Ох. Вы пытаетесь удалить разрыв трейлинг-строки в текстовом поле, которое пользователь обновляет? – Andrew

3

$.trim() должен сделать трюк!

Он обрезает символы пробелов и символов новой строки от начала и конца указанной строки.

+3

Нигде не сказал, что они использовали jQuery ... или что они хотели обрезать ничего, кроме конечной новой строки. –

38
verses ="1\n222\n" 
verses = verses.replace(/\n$/, "") 
-> returns "1\n222" 
+0

Мне это больше нравится. В потоке «stdout», например, у него будет огромный успех. Но в этом случае нет способа ... – eljefedelrodeodeljefe

2

Мне лично нравится lodash для обрезки строк из строк. https://lodash.com/

_.trim(myString); 
+0

Чтобы ответить на вопрос, используйте '_.trimRight (myString, '\ n')'. Обратите внимание, что это приведет к удалению * любого * числа завершающих строк новой строки, а не только одного. –

Смежные вопросы