Для валидации форм использую плагин 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Александр"));
Комментариев нет:
Отправить комментарий