将字符串匹配到众多正则表达式之一的函数?

时间:2016-06-01 04:08:12

标签: javascript jquery

我目前有以下功能,可以使用:

String.prototype.matchAny = function(patterns) {
    var that = this;
    var matched = false;

    // Iterate patterns and return key of first match
    $.each(patterns, function(i, v) {
        if (that.match(v)) {
            matched = i;
            return false;
        }
    });

    return matched;
};

它将返回字符串的第一个匹配正则表达式的patterns中的索引。例如:

"blah".matchAny([/a/, /z/]);       // 0
"blah".matchAny({z: /z/, a: /a/]); // "a"

然而,这个解决方案对我来说很笨拙。我使用Array.some()取得了一些成功,虽然它更优雅,但我找不到一种方法来获得我想要的结果(从匹配的patterns返回密钥)。

有什么我想念的吗?更具体地说,是否有内置函数(JavaScript / jQuery)可以产生相同的结果?

0 个答案:

没有答案