Удалить ВСЕ пробелы из текста [дубликаты]

438

Возможный дубликат:
Замените все пробелы в строке "+"

$("#topNav" + $("#breadCrumb2nd").text().replace(" ", "")).addClass("current");

Это фрагмент кода. Я хочу добавить класс в ID после получения другого свойства текста ID. Проблема с этим - это идентификатор, содержащий текст, который мне нужен, содержит пробелы между буквами.

Я бы хотел, чтобы белые пробелы были удалены. Я пробовал TRIM() и REPLACE() но это только частично работает. REPLACE() удаляет только 1-е пространство.

Теги:

2 ответа

1027
Лучший ответ

Вы должны сказать replace(), чтобы повторить регулярное выражение:

.replace(/ /g,'')

Г символ означает повторить поиск через всю строку. Прочтите об этом и других модификаторах RegEx, доступных в JavaScript здесь.

Если вы хотите сопоставить все пробелы, а не только символ буквального пробела, используйте вместо этого \s:

.replace(/\s/g,'')
  • 24
    Coffeescript будет жаловаться на это регулярное выражение по какой-то ужасной причине. Вместо этого мне пришлось пойти дальше и использовать .replace(/\s+/g, '') что мне вполне подходит.
  • 6
    Если вы хотите реализовать что-то вроде метода ruby's string.strip, который возвращает возвращаемую копию строки с удаленными начальными и конечными пробелами, это должно работать: x = " Many spaces before and after " y = x.replace(/(^\s+|\s+$)/g, "") ^\s означает пробел после начала строки, \s$ означает пробел в конце строки, символ | это либо для / или в группе, и модификатор g объясняется в комментариях выше. Вам также нужны + квантификаторы после каждого \s как вы хотите захватить один или несколько экземпляров пробелов.
Показать ещё 2 комментария
247
.replace(/\s+/, "") 

Заменит только первый пробел, включая пробелы, табуляции и новые строки.

Чтобы заменить все пробелы в строке, вам нужно использовать глобальный режим

.replace(/\s/g, "")
  • 10
    Первый не удаляет все пробелы (он удаляет только первую группу пробелов / новой строки / табуляции), второй - в порядке. демо: regex101.com/r/wX8rF2/3
  • 4
    .replace (/ \ s + / g, '')
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню