Страницы

Поиск по вопросам

вторник, 9 июля 2019 г.

Проблема с регулярными выражениями в плагине jquery.validate

Для валидации форм использую плагин jquery.validate. К функционалу плагина я добавил регулярку проверки имени.
$.validator.addMethod("name", function( value, element ) { return this.optional( element ) || /[а-яё]/i.test( value ); });
Но возникла проблема, при вводе, например, 123Александр, плагин не выдаёт ошибку, т.е регулярка не срабатывает.
$("form").validate({ rules: { email: { required: true, email: true }, name: { required: true, minlength: 3, name: true } } });
Как решить проблему ввода корректного имени, чтобы не было таких ошибок?


Ответ

/[а-яё]/i возваращает true при нахождении одной русской буквы в строке. Если необходима валидация целой строки, т.е. все символы в строке должны являться русскими буквами, используйте
/^[а-яё]+$/i
Где:
^ - начало строки [а-яё]+ - 1 и более русских букв $ - конец строки /i - модификатор, активирующий нечувствительность выражения к регистру символов.
Демо:
var r = /^[а-яё]+$/i; console.log(r.test("Александр")); console.log(r.test("123Александр"));

Комментариев нет:

Отправить комментарий