Skip to content

Commit 19ed211

Browse files
committed
fixes
1 parent 9d28ab2 commit 19ed211

File tree

1 file changed

+2
-2
lines changed
  • 9-regular-expressions/15-regexp-infinite-backtracking-problem

1 file changed

+2
-2
lines changed

9-regular-expressions/15-regexp-infinite-backtracking-problem/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ alert( '12345678901234567890123456789123456789z'.match(/(\d+?)*$/) );
263263
Откат в этой логике в принципе не предусмотрен, поскольку предпросмотр "откатываться" не умеет. То есть, если предпросмотр нашёл 5 `pattern:a+`, и в результате поиск не удался, то он не будет откатываться на 4 повторения.
264264

265265
```smart
266-
Больше о взаимодействиях сверхжадных кватификаторов и предпросмотра вы можете найти в статьях [Regex: Emulate Atomic Grouping (and Possessive Quantifiers) with LookAhead](http://instanceof.me/post/52245507631/regex-emulate-atomic-grouping-with-lookahead) и [Mimicking Atomic Groups](http://blog.stevenlevithan.com/archives/mimic-atomic-groups).
266+
Больше о взаимодействиях сверхжадных квантификаторов и предпросмотра вы можете найти в статьях [Regex: Emulate Atomic Grouping (and Possessive Quantifiers) with LookAhead](http://instanceof.me/post/52245507631/regex-emulate-atomic-grouping-with-lookahead) и [Mimicking Atomic Groups](http://blog.stevenlevithan.com/archives/mimic-atomic-groups).
267267
```
268268

269269
Такой метод нивелирует проблему.
@@ -283,7 +283,7 @@ let badInput = `<tag a=b a=b a=b a=b a=b a=b a=b a=b
283283
a=b a=b a=b a=b a=b a=b a=b a=b a=b a=b a=b a=b a=b`;
284284

285285
alert( goodInput.match(fixedReg) ); // <a test="<>" href="#">, <b>
286-
alert( badInput.match(fixedReg) ); // null (нет резульатов, отработало быстро!)
286+
alert( badInput.match(fixedReg) ); // null (нет результатов, отработало быстро!)
287287
```
288288

289289
Отлично, всё работает! Нашло как длинный тег `match:<a test="<>" href="#">`, так и одинокий `match:<b>`, и (!) не "вешает" интерпретатор при некорректных данных.

0 commit comments

Comments
 (0)