我想测试一下Unicode 正则表达式属性转义以避免在不支持正则表达式的浏览器(例如 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,但据我所知,没有用于正则表达式的 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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)