Regex在chrome上工作,但在safari上返回无效错误



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上失败…我试图替换<与:但它也不起作用

这是我看到的错误:SyntaxError: Invalid regular expression: invalid group specifier name

不知道怎么修?我必须使用的regex备忘单是什么?

第一个捕获组无效(在Firefox上也不起作用(;正则表达式的javscript风格中不支持(?<=..背后的正向外观;及其依赖于浏览器的实现;请查看此SO答案以供进一步阅读;因此,尝试使用更广泛支持的"模式",而不是/(?<=api-)(.*)-us(.*)/;它绝对可以写得更简单,而不需要正面的考虑;我还建议在像regexr或regex101等在线regex游乐场中尝试您的模式…

最新更新