Проверка строки на соответствие регулярному выражению
Нужно проверить строку на четкое совпадение регулярному выражению
Строку допустим такая 227,30,218,9,245,6,256,15,246,26 Обязательное условие что б в конце без пробела и без запятой Регулярное выражение сам написал вроде все правильно находит /((\d)+,)+(\d)+/, но вот как это все применить в javascript? if ( /((\d)+,)+(\d)+/.test('227,30,218,9,245,6,256,15,246,26') ) { document.write("строка правильная"); }else{ document.write("строка НЕ правильная"); } |
var re = /^\d[0-9,]+\d$/; if (re.test( "227,30,218,9,245,6,256,15,246,26" ) ) { alert("Данная строка соответсвует заявленому патерну"); } |
var res = /(\d+,)+\d+/.test('227,30,218,9,245,6,256,15,246,26'); var res = /(\d+,)+\d+/.exec('227,30,218,9,245,6,256,15,246,26'); // var res = '227,30,218,9,245,6,256,15,246,26'.search(/(\d+,)+\d+/); // возвращает индекс начала совпадения или -1 var res = '227,30,218,9,245,6,256,15,246,26'.match(/(\d+,)+\d+/); // возвращает массив с совпадениями var res = '227,30,218,9,245,6,256,15,246,26'.replace(/(\d+,)+\d+/, 'bubble'); // заменяет регулярку на текст, // можно использовать "$1" как указатель на первую сохраняющюю группу |
Возникла не необходимость не немножко видо изменить это выражение /^\d[0-9,]+\d$/
Так что оно не пропускало просто числа , без единой запятой допустим 56 или 263 а пропускало только 56,263 или 26,7 |
Мне кажется в данном случае регулярка - это как из пушки по воробьям. Имхо регулярки нуно юзать там, ну где без них совсем тяжко, а эту задачу можно довольно просто решить следующей функцией (работать буит быстрее чем регулярка):
function test(str){ if (!str) { return false; } str = str.split(","); if (!str[1]) { return false; } for (var i = str.length; i--;) { if (isNaN(str[i]) || !str[i]) { return false; } } return true; } test("121"); // false test("121,"); // false test(",121"); // false test("121,4"); // true |
Код:
/^(\d+,)*(\d+)$/ Цитата:
|
/^(\d+,)*(\d+)$/ Не проходит проверку простого числа Цитата:
|
Цитата:
Все работает |
Ну в условие было сказано, что одно число, типо: 56 не должно проходить, а только несколько чисел: 65,2,11,7 и т.д.
![]() |
kobezzza спасибо, за функцию, то что нужно.
|
Часовой пояс GMT +3, время: 23:11. |