Проблема с регулярным выражением
Задача проверить что строка состоит только из 10-значных чисел, при этом каждое число с новой строки. Т.е. вида:
4445555667 9999999998 5556667789 Я проверяю это так: var re = new RegExp("^[0-9]{10}$", "mg"); if (re.test(string)) { alert('всё ок'); } else { alert('ошибка'); } но это не работает. Например если строка 4445555667 99999 или даже 4445555667 sdfsfs выдаёт что всё ок. Что я делаю не так? |
kolyan1983,
var str1 = "4445555667\n\
9999999998\n\
5556667789",
str2 = "4445555667\n\
99999",
str3 = "4445555667\n\
sdfsfs";
function str_test(str) {
var er = 0; alert(str);
str = str.replace("\r\n", "").split("\n");
for (i = 0; i < str.length; i++) {
if (isNaN(str[i]) || str[i].length != 10) {
er = 1; break;
}
}
if (er != 0) { return alert("ошибка"); }
else { return alert("все ок!"); }
}
str_test(str1);
str_test(str2);
str_test(str3);
|
Спасибо конечно за ответ, но хотелось бы сделать это с помощью регулярных выражений.
|
Цитата:
Варианты: разбить на строки и проходить по ним регуляркой -если хоть одна строка не соответствует шаблону ретурн не ок воспользоваться методом match -если количество соответствий меньше чем строк -ошибка |
lord2kim,
привёл вариант работающий быстрее чем поиск регуляркой. |
| Часовой пояс GMT +3, время: 03:27. |