在javascript中,如何检查正则表达式中是否支持某个标志?
对于一些新标志,我不断收到“无效的正则表达式标志”错误。
答案 0 :(得分:1)
您可以使用RegExp构造函数。它可以防止语法错误,并允许您选择性地检测和使用该标志而不中止执行。
function isRegExpFlagSupported() {
try {
var regexp = new RegExp("foo.*bar", "s");
return true;
} catch (ex) {
return false;
}
}
如果你在try-catch块之外执行它,就像这样,
var regexp = new RegExp("foo.*bar", "s");
它会抛出错误"无效的正则表达式标志s"。
答案 1 :(得分:0)
如果您不知道正则表达式的组成,则可以将其转换为字符串并使用正则表达式捕获最后/
个字符后的字母。与/test/gi.toString().match(/\w*$/); // <- ["gi"]