Подтвердить что ты не робот

Регулярное выражение Javascript Удалить места

Итак, я пишу маленький плагин для JQuery для удаления пробелов из строки. см. здесь

(function($) {
    $.stripSpaces = function(str) {
        var reg = new RegExp("[ ]+","g");
        return str.replace(reg,"");
    }
})(jQuery);

мое регулярное выражение в настоящее время [ ]+ для сбора всех пробелов. Это работает. Однако это не оставляет хорошего вкуса во рту. Я также пробовал [\s]+ и [\W]+, но не работал.

Должен быть лучший (более сжатый) способ поиска только пробелов.

4b9b3361

Ответ 1

Я бы порекомендовал вам использовать буквенную нотацию и использовать класс символов \s:

//..
return str.replace(/\s/g, '');
//..

Существует разница между использованием символьного класса \s и просто ' ', это будет соответствовать многим другим символам пробела, например '\t\r\n' и т.д., ища ' ' заменит только ASCII 32 пустое пространство.

Конструктор RegExp полезен, когда вы хотите построить динамический шаблон, в этом случае он вам не нужен.

Кроме того, как вы сказали, "[\s]+" не работал с конструктором RegExp, потому что вы передаете строку, и вы должны "удвоить escape" обратные косые черты, иначе они будут интерпретироваться как символ (например: "\s" === "s" (неизвестный escape)).

Ответ 2

"foo is bar".replace(/ /g, '')

Ответ 3

str.replace(/\s/g,'')

Работает для меня.

jQuery.trim имеет следующий хак для IE, хотя я не уверен, какие версии он влияет:

// Check if a string has a non-whitespace character in it
rnotwhite = /\S/

// IE doesn't match non-breaking spaces with \s
if ( rnotwhite.test( "\xA0" ) ) {
    trimLeft = /^[\s\xA0]+/;
    trimRight = /[\s\xA0]+$/;
}

Ответ 4

Удалить все пробелы в строке

// Remove only spaces
'
Text with spaces 1 1     1     1 
and some
breaklines

'.replace(/ /g,'');
"
Textwithspaces1111
andsome
breaklines

"

// Remove spaces and breaklines
'
Text with spaces 1 1     1     1
and some
breaklines

'.replace(/\s/g,'');
"Textwithspaces1111andsomebreaklines"

Ответ 5

В производстве и работает через разрывы строк

Это используется в нескольких приложениях для очистки созданного пользователем содержимого, удаляя лишние пробелы/возвраты и т.д., Но сохраняет значение пробелов.

text.replace(/[\n\r\s\t]+/g, ' ')