我有正则表达式模式数组,我想检查与正则表达式匹配的 url 并使用它。 请告诉我最好的方法。
我写的代码是这样的。
var a = ['^\/(.*)\/product_(.*)','(.*)cat_(.*)'];
var result = a.exec("/Duracell-Coppertop-Alkaline-AA-24-Pack/product_385346");
预期:
当我使用 a.exec 时,它应该解析 url "/Duracell-Coppertop-Alkaline-AA-24-Pack/product_385346"
并给出结果。
最佳答案
像这样迭代正则表达式:
var a = ['^\/(.*)\/product_(.*)','(.*)cat_(.*)'];
var result = [];
for (var i = 0; i < a.length; i++) {
result.push(RegExp(a[i]).exec("/Duracell-Coppertop-Alkaline-AA-24-Pack/product_385346"));
}
然后所有匹配项都存储在 result
中。
result[0]
是一个数组,包含 a
中正则表达式的匹配项,索引为 0
,result[1]
--> a[1]
等。如果正则表达式没有结果,result[x]
将为 null
.
除了将正则表达式结果推送到数组之外,您还可以直接处理结果:
for (var i = 0; i < a.length; i++) {
var currentResult = RegExp(a[i]).exec("/Duracell-Coppertop-Alkaline-AA-24-Pack/product_385346");
// Do stuff with currentResult here.
}
关于javascript - 如何使用正则表达式模式数组来检查 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21526440/