В конце дня мне нужно, чтобы регулярное выражение соответствовало множественным или одиночным вхождениям строки даты.JS Regex: соответствует одному или нескольким событиям
Для одиночного вхождения «12-2-2014» будет использоваться регулярное выражение /(\d+[-/\.]\d+[-/\.]\d+)/
.
Для тестирования «12-2-2014 22-05-2033» он потерпит неудачу. С активным глобальным флагом он будет проверяться положительно, но я недавно усвоил, что при использовании глобального флага я не могу выполнить модульное тестирование своих регулярных выражений.
Любая помощь приветствуется ...
EDIT: Я тестирую с QUnit на данный момент. Простой тест будет:
test("REGEX TEST", function() {
var dates = ['12-2-2014', '14-5-2014'],
regex = /(\d+[-/\.]\d+[-/\.]\d+)/g;
ok(regex.test(dates.join(' ')));
ok(regex.test(dates.join(' ')));
ok(regex.test(dates.join(' ')));
ok(regex.test(dates.join(' ')));
});
-> Я получаю разные результаты для каждой оценки ...
Ну, проблема, кажется, не быть здесь, но в том, что вы делаете ваш модульного тестирования. Вы не можете отказаться использовать флаг g в регулярном выражении только потому, что у вас есть проблема в системе тестирования. –
Что вы подразумеваете под «при использовании глобального флага, я не могу выполнить модульное тестирование своих регулярных выражений»? Можете ли вы привести пример, почему это так? –
Вы уверены, что не сможете выполнить его тестирование с помощью глобального флага _regex_? Это полностью отличается от глобальных _variables _... – Wrikken