Проблема с регулярным выражением
Задача проверить что строка состоит только из 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, время: 05:59. |