#javascript #регулярные_выражения
Есть задача, написать регулярное выражение на пропуск 2х слов, к примеру имя и фамилия, на любом языке (англ, немецкий...). Вот как я подумал var str = "Имя фамилия текст текст"; str.match(/^[^!@#]+ [^!@#]+$/i); И вот результат ["Имя фамилия текст текст"] Почему , регулярное выражение прошло валидацию? МОжет я не правильно проверяю, я не пойму... По идее, регулярка должна найти совпадение начало_строки[любой_символ_кроме!@#]минимум1раз пробел [любой_символ_кроме!@#]конец_строки Но, в примере после 2ого слова есть еще пробелы, символы, и их тоже пропускает Мне нужно проверить на любые символы кроме тех 3х знаков Вот тестер https://regex101.com/r/kJ5vZ2/4
Ответы
Ответ 1
Вы сами отвечаете на свой вопрос. Регулярное выражение [^!@#]+ включает в себя любые символы кроме !, @ и # в том числе включает и пробел! А это значит, что вся строка Имя фамилия текст текст подходит под первое [^!@#]+. Добавьте в список исключаемых слов пробел. Пример: var str = "Имя фамилия текст текст"; str.match(/^[^!@# ]+ [^!@# ]+$/i); https://regex101.com/r/kJ5vZ2/5
Комментариев нет:
Отправить комментарий