在下面的代码中,我想验证messageText与第一个validationPattern并显示来自validationPatterns数组的相应消息。模式和消息由管道分隔“|”字符。正则表达式javascript返回意外结果
为此我使用下面的代码,并总是得到错误的结果。有人可以看看这个并帮助我吗?
var messageText = "Message1234";
var validationPatterns = [
['\/^.{6,7}$/|message one'],
['\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b|message two']
];
for (var i = 0; i < validationPatterns.length; i++) {
var validationvalues = validationPatterns[i].toString();
var expr = validationvalues.split("|")[0];
console.log(expr.constructor);
if(expr.test(messageText)) {
console.log("yes");
} else {
console.log("no");
}
}
我知道我们不能使用管道作为分隔符,因为管道也是正则表达式的一部分。不过,我稍后会改变这一点。
*意外结果*是什么意思?你得到了什么,你期望什么?当我尝试运行代码时,出现运行时错误:'TypeError:Object /^.{6,7}$/'没有方法'test''。而不是使用一个字符串来保存由'|'分开的两个值,我会使用一个数组。 –