Regex работает на chrome, но возвращает неверную ошибку в сафари - PullRequest
1 голос
/ 13 марта 2020

text = document.getElementById("p01").innerHTML; 
document.getElementById("demo").innerHTML = /(?<=api-)(.*)-us(.*)/.test('api-stg-usw2b');
<h2>JavaScript Regular Expressions</h2>

<p>Search for an "e" in the next paragraph:</p>

<p id="p01">The best things in life are free!</p>

<p id="demo"></p>

Это регулярное выражение работает на chrome, но не работает в Safari… Я пытался заменить <на:, но также не работало </p>

Это ошибка, которую я вижу: SyntaxError: Invalid regular expression: invalid group specifier name

Не знаете, как ее исправить? Что такое шпаргалка регулярных выражений, которую я должен использовать?

1 Ответ

1 голос
/ 13 марта 2020

Эта первая группа захвата недействительна (также не работает на Firefox); положительный взгляд (?<=.. не поддерживается в javscript-варианте regex; и его зависящая от браузера реализация; проверьте этот SO ответ для дальнейшего чтения; поэтому попробуйте использовать более широко поддерживаемый «шаблон» вместо /(?<=api-)(.*)-us(.*)/; это определенно можно написать проще без позитивного взгляда; Я также предлагаю попробовать ваш шаблон на игровой площадке онлайн-регулярных выражений, например regexr или regex101 , et c ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...