2016-07-08 3 views
1

자바 스크립트에서 패턴을 일치 시키려고합니다.RegExp 결과가 일치하지 않습니다.

var pattern = "/^[a-z0-9]+$/i"; // This is should accept on alpha numeric characters. 
var reg = new RegExp(pattern); 
console.log("Should return false : "+reg.test("This $hould return false")); 
console.log("Should return true : "+reg.test("Thisshouldreturntrue")); 

내가 거짓으로 모두 결과를 얻고이를 실행

다음은 예입니다. 나는 간단한 것을 놓치고 있다고 생각합니다. 그러나 조금 혼란스러워.

미리 감사드립니다.

답변

2

RegExp 생성자를 사용하는 경우에는 슬래시를 사용할 필요가 없습니다. 정규식 생성자에 큰 따옴표없이 슬래시를 둘러싸 중 하나를 사용하는 정규 표현식을 나타 내기 위해 또는 당신은 (일반적으로 인용 부호) 문자열을 전달 :

var pattern = "^[a-z0-9]+$"; // This is should accept on alpha numeric characters. 
 
var reg = new RegExp(pattern, "i"); 
 
console.log("Should return false : "+reg.test("This $hould return false")); 
 
console.log("Should return true : "+reg.test("Thisshouldreturntrue"));

0

귀하의 패턴이 잘못되었습니다. 여기서 RegExp 생성자를 사용할 필요가 없습니다. 그리고 대소 문자를 쓰거나 범위에 대문자를 추가해야합니다.

var reg = /^[a-zA-Z0-9]+$/; 
 
console.log("Should return false : "+reg.test("This $hould return false")); 
 
console.log("Should return true : "+reg.test("Thisshouldreturntrue"));