Javascript - Как удалить все лишние интервалы между словами
Как удалить все лишнее пространство между словами в строковом литерале?
"some value"
Должно стать
"some value"
Кроме того,
" This should become something else too . "
становится
"This should become something else too ."
Не беспокойтесь о перемещении .
. Точно так же, как выше, прекрасно. Я знаю, что могу использовать $.trim(str)
для достижения удаления конечного/конечного пространства. Но я не уверен, как сделать 1 пробел между трюком слов.
Ответы
Ответ 1
var string = " This should become something else too . ";
string = string.replace(/\s+/g, " ");
Этот код заменяет последовательный набор символов пробела (\s+
) одним пробелом. Обратите внимание, что символ пробела также включает в себя вкладки и новые строки. Замените \s
пробелом, если вы хотите заменить пробелы.
Если вы также хотите удалить пробелы в начале и конце, включите:
string = string.replace(/^\s+|\s+$/g, "");
Эта строка удаляет все символы пробела в начале (^
) и заканчивается ($
). g
в конце RegExp означает: глобальный, т.е. Сопоставлять и заменять все вхождения.
Ответ 2
var str = " This should become something else too . ";
str = str.replace(/ +(?= )/g,'');
Здесь рабочая скрипка.
Ответ 3
var str = " This should become something else too . "
$.trim(str).replace(/\s(?=\s)/g,'')
Это использует lookahead для замены нескольких пробелов одним пространством.
Ответ 4
Пример jsFiddle
" This should become something else too . ".replace(/[\s\t]+/g,' ');
Ответ 5
Еще одна (возможно, более понятная) замена регулярного выражения, которая сделает трюк:
var input = /* whatever */;
input = input.replace(/ +/g, ' ');
Регулярное выражение соответствует одному или нескольким пробелам, поэтому вызов .replace()
заменяет каждое одиночное или повторяющееся пространство одним пробелом.
Ответ 6
var str = 'some value';
str.replace(/\s\s+/g, ' ');
Ответ 7
В случае, если мы хотим избежать функции замены на регулярное выражение,
Мы можем достичь того же результата,
str.split(' ').filter(s => s).join(' ')
// var str = " This should become something else too . ";
// result is "This should become something else too ."
Сначала разделите исходную строку пробелом, затем в массиве будет пустая строка и слова. Во-вторых, отфильтруйте, чтобы остались только слова, затем объедините все слова с пробелами.