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

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

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

Входные данные :

'/var/www/site/Brand new document.docx'

Выход:

'/var/www/site/Brandnewdocument.docx'
4b9b3361

Ответ 1

Это?

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

Пример

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

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

Ответ 2

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

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

Ответ 3

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

Так

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

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

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

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


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

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

Ответ 4

Кратчайший и быстрый: str.replace(//g, '');


Ориентир:

Вот мои результаты - (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-разрядная версия):

Короткие строки

Короткая строка, похожая на примеры из вопроса OP

enter image description here

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

Длинные строки

Для строки около 3 миллионов символов:

  • regexp1a: Safari 50,14 операций в секунду, Firefox 18,57, Chrome 8,95
  • regexp2b: Safari 38.39, Firefox 19.45, Chrome 9.26
  • split-join: Firefox 26.41, Safari 23.10, Chrome 7.98,

Вы можете запустить его на своем компьютере: https://jsperf.com/remove-string-spaces/1

Ответ 6

  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", он игнорирует чувствительность к регистру.

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

Ответ 7

Вы можете попробовать:

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

Ответ 8

Я предпочитаю использовать Lodash для удаления пробелов из строки:

var input  = '/var/www/site/Brand new document.docx',
    result = _.trim(input);

Ответ 9

Если вы хотите удалить пробелы с обоих концов строки (но не внутри строки), используйте trim() methodode, например

"   a  b  c   ".trim() //   = "a  b  c"

Примечание:
Вы также можете прочитать о trimLeft и trimRight, которые удаляют пробелы только с левой/правой стороны соответственно, но обратите внимание, что эти два являются нестандартными и не соответствуют стандартным трекам.

Ответ 10

Regex + Replace()

Хотя регулярные выражения могут быть медленнее, во многих случаях разработчик манипулирует только несколькими строками одновременно, поэтому скорость не имеет значения. Хотя//быстрее, чем /\ s/, наличие символа \s объясняет, что происходит с другим разработчиком, возможно, более четко.

let string = '/var/www/site/Brand new document.docx';
let path = string.replace(/\s/g, '');
// path => '/var/www/site/Brandnewdocument.docx'

Split() + Join()

Использование Split + Join позволяет в дальнейшем манипулировать цепочкой.

let string = '/var/www/site/Brand new document.docx';
let path => string.split('').map(char => /(\s|\.)/.test(char) ? '/' : char).join('');
// "/var/www/site/Brand/new/document/docx";

Ответ 11

Хотя есть способы использовать регулярные выражения для удаления пробелов, есть простая функция, которая может удалить все пробелы, называемая .trim(); :

var str = "abr a cadab ra";
str = str.trim();
//str = "abracadabra"