javascript - 测试 IE11 中的正则表达式编译功能

标签 javascript regex unicode-escapes browser-feature-detection

我想测试 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/

相关文章:

javascript - 使用 p5.js 中的 createGraphics 有效遮盖形状

javascript - 在通过标记数组映射之前,reactjs nullcheck

javascript - 从 Javascript/jQuery 中的 URL 字符串检索日期

json - 在 ms sql (SQL Server) 中以\u0 格式 (json) 转义变音

javascript - 使用 jQuery 计时器保持计时器在新选项卡上运行

javascript - 无法使用 GAS 在(日期)将触发器设置为明天日期

regex - 将数字与 R 中的文本分开

c# - YouTube网址的正则表达式验证-字段是根据需要的可选返回

java - 将 Unicode 字符 'POPCORN' 转义为 HTML 实体

crystal-lang - Crystal中的 "\x85"和 "\u{85}"有什么区别?