'unexpected quantifier' IE11 中的正则表达式错误
'unexpected quantifier' regexp error in IE11
我有一个像 SHM{GHT}
这样的字符串,需要从括号中获取一个值(本例中为 GHT
)。
在 IE 中打开它之前,我使用 RegExp 获取它并且一切正常。我的页面在这里中断,我收到错误 unexpected quantifier
.
这是我的函数
const getValueFromBrackets = (el): string => {
const valueFromBrackets = el.match(/(?<=\{).+?(?=\})/g);
return valueFromBrackets[0];
}
我检查了 CanIUse .match()
应该可以正常工作,但内部部分 /(?<=\{).+?(?=\})/g
有问题。
知道如何重写它吗?
非常感谢您的帮助!
问题在于 lookbehind 断言 <=\{
,旧引擎不支持它。作为解决方法,匹配 {(...)}
并取第一组:
console.log('SHM{GHT}'.match(/{(.+)}/)[1])
我有一个像 SHM{GHT}
这样的字符串,需要从括号中获取一个值(本例中为 GHT
)。
在 IE 中打开它之前,我使用 RegExp 获取它并且一切正常。我的页面在这里中断,我收到错误 unexpected quantifier
.
这是我的函数
const getValueFromBrackets = (el): string => {
const valueFromBrackets = el.match(/(?<=\{).+?(?=\})/g);
return valueFromBrackets[0];
}
我检查了 CanIUse .match()
应该可以正常工作,但内部部分 /(?<=\{).+?(?=\})/g
有问题。
知道如何重写它吗?
非常感谢您的帮助!
问题在于 lookbehind 断言 <=\{
,旧引擎不支持它。作为解决方法,匹配 {(...)}
并取第一组:
console.log('SHM{GHT}'.match(/{(.+)}/)[1])