我目前有以下功能,可以使用:
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)可以产生相同的结果?