아래 코드에서 첫 번째 validationPattern으로 messageText의 유효성을 검사하고 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'가 없습니다. 두 개의 값을'|'로 구분하여 문자열을 사용하는 대신 배열을 사용합니다. –