2013-09-30 3 views
1

젠드 프레임 워크 2에서 클라이언트 측 유효성 검사를하고 정규식을 사용하고 있습니다. 시험이 목적을 위해 클래스 그러나 나는 다음과 같은 방법자바 스크립트에서 regex.test 클래스를 사용하는 방법

var regex = new RegExp('/^[a-zA-Z0-9_-\s]{1,50}+$/'); 
console.log(regex.test(id_val)); 

에 사용하고 올바른 결과 을 받고 있지만 항상 false를 반환하지. 누구나 사용법을 알고 있습니까?

+0

구문이 정상적으로 보입니다. id_val의 가치는 무엇입니까? 질문에 추가하십시오. – SBerg413

+2

'new'를 사용하여 RegExp 객체를 만드는 것은 구분 기호를 사용하지 않고 두 개의 한정 기호는 오류가 발생합니다. (당신의 브라우저의 JS 콘솔은 이미 후자에 대해 당신에게 말했을 것입니다.) – CBroe

답변

1

/을 문자열 리터럴에서 제거하고 후행 +을 제거하십시오. @Bergi에 의해 논평 된 \도 탈출하십시오.

/^[a-zA-Z0-9_-\s]{1,50}$/.test('1'); // => true 

를 사용하여 정규 표현식 문자는 정규 표현식 런타임을 생성 할 필요가없는 경우 :

var regex = new RegExp('^[a-zA-Z0-9_-\\s]{1,50}$'); 
regex.test('1'); // => true 

하거나, 문자 정규 표현식을 사용합니다.

+2

... 그리고 백 슬래쉬를 벗어나십시오. 아니요, 생성자 대신 리터럴을 사용하십시오. – Bergi

+0

여전히 m은 문자열 형식의 다른 페이지로 들어오는 것처럼 정규식을 따옴표로 묶는 방법을 혼란스럽게합니다. – Shahbaz

관련 문제