我有一个JavaScript正则表达式列表,像下面这样:
var list = [
'^/items/detail.*',
'^/items/settings.*',
'^/article/view/.*',
'^/home/purchase.*',
];
我希望查看字符串是否与数组中的某个正则表达式匹配。 如果可能的话,我想使用reduce函数。 我尝试过以下方法:
var text = "http://www.mypage.com/items/detail";
var result = list.reduce((a, b) =>
!!text.match(a) || !!text.match(b)
);
但似乎没有起作用。出于某种原因它返回false。我尝试了不同的变化,但都无法找到一个有效的方法。
some
代替reduce
怎么样?你需要知道正则表达式匹配了什么,还是至少有一个匹配吗? - Andysome
。var result = list.some(t=> text.match(t));
,但您需要修改正则表达式并删除“startswith”^
,否则表达式将无法匹配。(http://jsfiddle.net/28rzph21/ ) - Me.Name