- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
$.validator.addMethod("phoneNumber",
function(value, element) {
var letterNumber = /^[a-zA-Z]+$/;
if (value.match(letterNumber)) {
return false;
}
var phoneString = value.replace(/\D/g, '');
return phoneString.length == 0 || phoneString.length >= 11;
});
guest 13.12.2013 21:00 # −1
А в return phoneString.length == 0 || phoneString.length >= 11; при невалидном номере функция возвращает true, а при валидном - false.
Валидировали, валидировали, да не вывалидировали.
Tessen 13.12.2013 23:24 # +2
1) в первом регэкспе вообще проводится проверка не является ли ВЕСЬ ввод единым, монолитным блоком латинских (!) букв без единого пробела или тирэ
2) во втором регэкспе все символы отличные от цифр удаляются из строки после чего ее длина сравнивается с 0 или 11
как раз последний return в этой функции - единственное что работает хотя бы приблизительно как задумывалось (телефон отсутствует либо в нем есть хотя бы 11 цифр)
все остальное здесь - бред сивой кобылы, первая проверка видимо писалась под особо тяжелыми веществами, а "вырезание" всего кроме цифр из строки (подозреваю для того чтобы можно было ставить в номере -) заодно позволяет проходить валидацию на "телефонный номер" всякой хрени вроде "кукареку" (убивается реплейсом в пустую строку проходящую проверку в return благодаря полному отсутствию цифр) или любой хрени снабженной как минимум 11ю цифрами (1а2б3в...)
yamamoto 13.12.2013 22:41 # +2