'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])