2017-01-05 5 views
2

Мне нужно, чтобы язык javascript удалял только пробелы изнутри строки. Левая и правая стороны могут иметь эти пробелы. Я не нахожу решение ...JS: Как удалить пробелы только изнутри строки

Может быть, какая-то нативная функция? Или у sombedy есть некоторое регулярное выражение?

У меня только:

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

Но он удаляет пробелы из сторон тоже.

Я хочу:

var str = "  s dasd   asd sad sa d  "; 
str = str.replace(/\s+/g, ''); 
// output 
"  sdasdasdsadsad  "; 
+1

Можете ли вы поставить пример того, что вы хотите? –

+0

Я добавил небольшой пример – Vital

+0

' ' не является пробелом ... он становится несколько неоднозначным, что именно вы хотите, если считаете это как пробел. – deceze

ответ

4

Вы можете соответствовать и захватить ведущий/ведомый пробельные и восстановление в результате с обратными ссылками, и удалите все остальные пробела.

var str = " some text "; 
 
str = str.replace(/(^\s+|\s+$)|\s+/g, '$1'); 
 
console.log("'",str,"'");

деталь шаблон:

  • (^\s+|\s+$) - Группа 1 захват одного или несколько пробельных 1) в начале строки (^\s+) или 2) в конце строка (\s+$)
  • | - или
  • \s+ - 1+ пробелы в другом месте в строке.

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

Для поддержки   также использовать чередование, (?:\s| ):

console.log("  s dasd   asd sad sa d  ".replace(/(^(?:\s| )+|(?:\s| )+$)|(?:\s| )+/g, '$1'));

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

  • Нет связанных вопросов^_^