我想知道这是否可能。我试图遍历包含正则表达式的对象,如下所示:

var formats = {
    AUS:"/^\D*0(\D*\d){9}\D*$/",
    UK: "/^\D*0(\D*\d){9}\D*$/"
        };

    var matched = false;

for (var i in formats) {
    if (!matched) {
        var format = formats[i];
        matched = value.match(formats[i]);
    }
}


我很欣赏AUS和UK两种表达方式具有相同的价值,但这只是为了证明这一概念。

我匹配的值是0423887743,当我执行以下操作时它将起作用:

value.match(/^\D*0(\D*\d){9}\D*$/);

最佳答案

更改为:

var formats = {
   AUS:/^\D*0(\D*\d){9}\D*$/,
   UK: /^\D*0(\D*\d){9}\D*$/
};


使用它的方式是字符串而不是正则表达式。

关于javascript - 遍历包含正则表达式的javascript对象变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19462519/

10-12 01:10