Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2012, 12:48
Интересующийся
Отправить личное сообщение для kolyan1983 Посмотреть профиль Найти все сообщения от kolyan1983
 
Регистрация: 04.03.2011
Сообщений: 23

Проблема с регулярным выражением
Задача проверить что строка состоит только из 10-значных чисел, при этом каждое число с новой строки. Т.е. вида:

4445555667
9999999998
5556667789

Я проверяю это так:

var re = new RegExp("^[0-9]{10}$", "mg");
if (re.test(string)) {
alert('всё ок');
} else {
alert('ошибка');
}

но это не работает. Например если строка

4445555667
99999

или даже

4445555667
sdfsfs

выдаёт что всё ок. Что я делаю не так?
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2012, 13:08
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

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);
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2012, 13:12
Интересующийся
Отправить личное сообщение для kolyan1983 Посмотреть профиль Найти все сообщения от kolyan1983
 
Регистрация: 04.03.2011
Сообщений: 23

Спасибо конечно за ответ, но хотелось бы сделать это с помощью регулярных выражений.
Ответить с цитированием
  #4 (permalink)  
Старый 29.11.2012, 13:23
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от kolyan1983
выдаёт что всё ок. Что я делаю не так?
ты регуляркой ищешь вхождение строки. если хоть одна строка будет совпадать с шаблоном , то определится соответствие шаблону и вернёт что соответствие найдено
Варианты:
разбить на строки и проходить по ним регуляркой -если хоть одна строка не соответствует шаблону ретурн не ок

воспользоваться методом match -если количество соответствий меньше чем строк -ошибка
Ответить с цитированием
  #5 (permalink)  
Старый 29.11.2012, 13:30
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

lord2kim,
привёл вариант работающий быстрее чем поиск регуляркой.

Последний раз редактировалось dmitriymar, 29.11.2012 в 13:32.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с регулярным выражением Artsemi Общие вопросы Javascript 21 07.08.2012 18:47
Проблема с регулярным выражением alexey33 Общие вопросы Javascript 4 14.10.2011 14:17
Нужно обрезать путь до файла регулярным выражением javascript_pupil Общие вопросы Javascript 3 22.11.2010 11:46
Проблема извлечения подстрок регулярным выражением Dotod Общие вопросы Javascript 4 17.05.2010 05:31
Извлечь значение параметра из location.search регулярным выражением? Бобр Общие вопросы Javascript 8 26.01.2010 01:01