我想测试 Unicode Regex Property Escapes避免在不支持它的浏览器(例如 IE11)中编译损坏的正则表达式。理想情况下,我想写一些类似以下内容的内容:
if (regex supports unicode property escapes) {
return /\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F/gu;
} else {
return /somereplacementregex/;
}
这可能吗?我知道有一些功能检测 API,但据我所知,没有一个用于正则表达式。或者,如果有另一种不会破坏编译并会抛出我可以捕获的错误的编写方式,那也很好。
最佳答案
这适用于 Firefox 或 Safari;在 IE11 中应该没问题:
let regex = /somereplacementregex/;
try
{
regex = new RegExp ("\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F", "gu");
}
catch (e) { }
//
// use regex...
console.log (regex);
关于javascript - 测试 IE11 中的正则表达式编译功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54004717/