0
我正在创建一个javascript(Node.js)循环函数,该函数应该遍历字符串数组,然后在针对正则表达式进行测试时返回true或false。如果FALSE,立即返回值(打破循环)。但是,数组中的第二个值仍然返回false,尽管它是有效的。正则表达式循环问题
调用函数传递这些值:
var valuesArray = ["ABCXYZ", "ABCXYZ1"];
var regexValue = /[a-zA-Z0-9]+$/;
var regex = new RegExp(regexValue);
function validateArrayValues(valuesArray, regex) {
var regexResult, item;
for (let counter = 0; counter < valuesArray.length; counter++) {
item = valuesArray[counter];
regexResult = regex.test(item);
if (!regexResult) return false;
}
return true;
}
[它工作得很好,对我来说,(https://jsfiddle.net/nuj1f9bq/) –
感谢迈克,我剪辑了一堆,它围绕着其他代码保持通用。可能是因为我在AWS Lambda函数中以Promises链的形式调用了这个函数。我会将其标记为已回答并继续前进。 –
有什么理由让你编写复杂的代码?我更喜欢'valuesArray.every(regex.test);',它看起来和函数名一样简短。如果你迫切需要一个函数,那么'const validateArrayValues =(ar => ar.every(regex.test));'? – phihag