在下面的代碼中,我想驗證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''。而不是使用一個字符串來保存由'|'分開的兩個值,我會使用一個數組。 –