Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему не работает ограничение количества символов {n,m} (https://javascript.ru/forum/misc/49272-pochemu-ne-rabotaet-ogranichenie-kolichestva-simvolov-%7Bn-m%7D.html)

riva 05.08.2014 16:44

Почему не работает ограничение количества символов {n,m}
 
var re = /c(?=a{3,})/; // выражение
var str = 'caandy'; // null
var str = 'caaandy'; // c
var re = /c(?=a{3,4})/; // Добавляю второй параметр 
var str = 'caaaaaaandy'; // все равно выводит с

Почему ДО минимального предела условие работает, а с ограничением на максимум нет?

Хочется сказать, что это все js виноват... :)
все смайлы, как смайлы, а улыбающийся, какой-то стремный... Опять хочется сказать, что это js виноват)))))

edison 05.08.2014 19:10

эммм
так и должно.

с(?=a{3,4}) заканчивает свою работу когда находит 'сaaa', что дальше ей все равно и {3,4} в этой конструкции не имеет смысла достаточно {3}, т.к. я уже написал выше "находит 'сaaa', что дальше ей все равно"

То, что ты хочешь.
var re = /c(?=a{3})(?!a{5})/;
var str = 'caaandy';
alert(str.match(re));
var str = 'caaaandy';
alert(str.match(re));
var str = 'caaaaandy';
alert(str.match(re));


Часовой пояс GMT +3, время: 22:28.