Javascript正则表达式检查标志支持

时间:2016-04-01 06:15:21

标签: javascript regex

在javascript中,如何检查正则表达式中是否支持某个标志?
对于一些新标志,我不断收到“无效的正则表达式标志”错误。

2 个答案:

答案 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"]

一样