Почему не работает ограничение количества символов {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 виноват))))) |
эммм
так и должно. с(?=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, время: 04:45. |