Regex/lastIndex - Неожиданное поведение

Можно выключить его через Инструменты / Опции

Затем в окне опции, Вы выбираете 'Текстовый редактор', тогда язык по Вашему выбору (C# для исключая). Затем Вы выбираете 'Усовершенствованный', и затем, у Вас есть флажок, который говорит: 'Окружите сгенерированный код #region'

5
задан James 7 October 2009 в 20:54
поделиться

2 ответа

var regex = new RegExp ("ABC", "g"); не имеет этой проблемы, поэтому я думаю / ABC / g re- использует объекты regexp.

РЕДАКТИРОВАТЬ: По-видимому, это правильное поведение согласно спецификации ECMAScript 3.0, оно исправлено в ECMAScript 3.1 - подробности

5
ответ дан 14 December 2019 в 13:41
поделиться

Попробуйте следующее:

function foo(s) {

    // A *NEW* regular expression
    // is created on each call of foo():
    var regex = new RegEx("ABC", "g");

    document.write( regex.lastIndex + '<br/>' );

    // regex.test() updates lastIndex property
    regex.test(s);

    // This is where the regex's life should end...
    // (Why does it persist?)

}

foo('ABC');
foo('ABCABC');
foo('ABCABCABC');
1
ответ дан 14 December 2019 в 13:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: