Удаление пробела в строке в javascript

490
06 января 2017, 11:52

Имеется регулярное выражение:

^[а-яё?\s]+$

Как дополнить эту регулярку, чтобы в начале и в конце обрезались пробелы, а внутри слова пробел допускался? Т.е "Иван Иванов" - пропускаем, "Иван Иванов " - не пропускаем?

Answer 1

Предлагаю разобрать символьный класс на пробелы и всё остальное и сложить такое выражение:

/^[а-яё?]+(?:\s+[а-яё?]+)*$/i

или (если разрешен только 1 пробел между словами):

/^[а-яё?]+(?:\s[а-яё?]+)*$/i

См. демо.

Оно найдёт:

  • ^ - начало строки
  • [а-яё?]+ - 1 и более русских букв
  • (?:\s[а-яё?]+)* - 0 и более:
    • \s+ - 1 и более пробелов (удалите +, если разрешен только 1 пробел между словами)
    • [а-яё?]+ - 1 и более русских букв
  • $ - конец строки
Answer 2

Используйте .trim(); Оригинальную строку не изменяет. Поддерживается везде.

var str = " temp ";
str.trim();

Есть еще:

jQuery.trim();
Answer 3

Вот так можно:

^(?:[^ ][а-яё?\s]+[^ ]?|[^ ]?[а-яё?\s]+[^ ])$
Answer 4

Если отвечать на вопрос, то так

^[^\s][а-яё?\s]*[^\s]$

Но может лучше вызвать trim()?

READ ALSO
Проблемы с кодировкой

Проблемы с кодировкой

Текст из js выводится некорректно

473
Реализация Push-уведомлений. Web Push Notification

Реализация Push-уведомлений. Web Push Notification

Сделал отправку пуш уведомлений сам себеНо как сделать чтобы те, кто подписались заностились в базу? И главное как? Потому что надо будет...

376
Почему не продлевается время токена?

Почему не продлевается время токена?

Здравствуйте, есть такой код:

393
События в календаре по датам из внешнего файла

События в календаре по датам из внешнего файла

Имеем из просторов интернета такой вот календарь:

384