регулярка не верно работает
вот тут обнаружил толи баг толи фишку регулярок.
str = '.class[.prop][.prop2]'; re = /(?:\[[^\]]*\])*(\.\w+)?/g A = re.exec(str); alert(A); A = re.exec(str); alert(A); // здесь хочу null C чем се связано? Тест в ФФ Логика: пропускаем не нужное, цепляем нужное. Если условие не проходит - null |
Сначала нашёл .class, потом нашёл .prop. Всё правильно.
|
Так ?: слйчайно не значит "нежадный поиск"?
|
?: значит не сохранять найденное в скобках. Такая оптимизация, когда скобки нужны, а выражение в них не нужно.
|
Баг нашел. Дело в том, что там стояло обязательное условие на последнее выражение, и система вычислила его. Но надо было не это. Сейчас переправил регулярку. Работает верно. А можно сделать так чтобы если в последнего выражения нет то выдавался null. Логика: пропускаем не нужное, цепляем нужное. Если условие не проходит - null
|
Часовой пояс GMT +3, время: 22:50. |