Как удалить пробелы из строки с помощью JavaScript?

Как удалить пробелы в строке? Например:

вход : '/var/www/site/Brand new document.docx'
Вывод:'/var/www/site/Brandnewdocument.docx'

спасибо

7 ответов


этого?

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

пример

var str = '/var/www/site/Brand new document.docx';

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

обновление: на основе этот вопрос это:

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

является лучшим решением. Он дает тот же результат, но делает это быстрее.

Регулярное Выражение

\s - это regex для "пробел", и g является" глобальным " флагом, что означает match ALL \s (пробелы).

многие объяснение + можно найти здесь.

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


var a = b = " /var/www/site/Brand new   document.docx ";

console.log( a.split(' ').join('') );
console.log( b.replace( /\s/g, '') ); 

два способа сделать это!


следующий ответ @rsplak: на самом деле, использование split/join way быстрее, чем использование regexp. Смотрите представление тест

так

var result = text.split(' ').join('')

работает быстрее, чем

var result = text.replace(/\s+/g, '')

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


С другой стороны, \s+ обрабатывает более широкий спектр символов пространства. Среди с \n и \t, Он также соответствует \u00a0 характер, и это то, что   включается при получении текста с помощью textDomNode.nodeValue.

поэтому я думаю, что вывод здесь можно сделать следующим образом: если вам нужно только заменить помещения ' ', используйте split / join. Если могут быть разные символы символ класс - используйте replace(/\s+/g, '')


var input = '/var/www/site/Brand new document.docx';

//remove space
input = input.replace(/\s/g, '');

//make string lower
input = input.toLowerCase();

alert(input);

Нажмите здесь для рабочего примера


вы можете попробовать использовать это:

input.split(' ').join('');

  var output = '/var/www/site/Brand new document.docx'.replace(/ /g, ""); 
    or
  var output = '/var/www/site/Brand new document.docx'.replace(/ /gi,"");

Примечание: хотя вы используете "g" или " gi " для удаления пробелов, оба ведут себя одинаково.

Если мы используем 'g' в функции replace, он проверит точное соответствие. но если мы используем "gi", он игнорирует чувствительность к регистру.

для справки нажмите здесь.


самый короткий и быстрый: str.replace(/ /g, '');


Benchmark:

вот мои результаты - (2018.07.13) MacOs High Sierra 10.13.3 на Chrome 67.0.3396 (64-бит), Safari 11.0.3 (13604.5.6), Firefox 59.0.2 (64-бит) ):

enter image description here

самым быстрым решением во всех браузерах является / /g (regexp1a) - Chrome 17.7 M (operation/sec), Safari 10.1 M, Firefox 8.8 M. самым медленным для всех браузеров был split-join решение. Изменение to \s или добавить + или i to regexp замедляет обработку.

вы можете запустить его на своей машине:https://jsperf.com/remove-string-spaces