this.getRelativeStrengthIndexOverrides(value, /(?<=RSI14).*?(?=Over)/g, overrides);
方法:
getRelativeStrengthIndexOverrides(name: string, regex: string | RegExp, overrides: any): [] {
..
}
它与chrome兼容,但在Firefox中无法正常工作。我遇到错误
“ SyntaxError:无效的正则表达式组”
问题出在正则表达式中的?<=
我不明白为什么? chrome和FF中的此正则表达式有什么不同。如果我正在检查此页面,则它也应在firefox中工作。
答案 0 :(得分:0)
Firefox和IE之类的其他浏览器不支持隐藏式(在您的示例中为(?<=RSI14)
)。
后退兼容性在此处https://caniuse.com/#feat=js-regexp-lookbehind中显示。
您可以使用以下示例中的捕获组。 $1
到3代表这些组,它们在此处输出时带有下划线,但是您可以做任何您想做的事情。
text = "RSI14###Over"
pattern = /(RSI14)(.*?)(Over)/
$('body').html(text.replace(pattern, "$1_$2_$3"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
</body>