2015-06-16 3 views
3

У меня есть следующее выражение для проверки «имя»:Регулярное выражение в JavaScript, чтобы соответствовать только буквы или пробелы

/^([a-z\s?]{4,120})[^\s]$/i 

Но я не знаю, почему принимает специальные символы: [email protected] является действительным матч.

Он должен быть недействительным, поскольку я не указал, что содержит специальные символы.

ответ

1

Что вы хотите - это минимум 4 символа - вы пытаетесь заставить его работать с ожиданием не менее 5 символов из-за необязательного символа [^\s] в конце. Более того, [^\s] на самом деле будет соответствовать любому персонажу, который не является пространством - я бы поспорил, что вы хотите ограничить это просто письмами?

Попробуйте вместо этого:

^[a-z\s?]{3,119}[a-z]$ 
+0

так, теперь он работает спасибо. –

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