2010-03-30 5 views
1

here의 패턴을 사용하여 사용자가 #id_phone 텍스트 입력 필드를 채우는 동안 패턴과 일치하는 경우 # id_phone 값을 사용하여 # id_new_phone의 값을 채우고 싶은지 확인하고 싶습니다. 이것은 나를 위해 작동하지 않습니다.자바 정규 표현식 일치

$('#id_phone').change(function() { 
    var myPattern = new RegExp(^0\(5\d{2}\) \d{3} \d{2} \d{2}$); 
    var myStr = $("#id_phone").val(); 
    if (myStr.match(myPattern)){ 
     $('#id_new_phone').val(myStr); 
    } 
}); 

무엇이 문제 일 수 있습니까?

+1

일치시키려는 데이터의 예는 문제를 진단하는 데 매우 유용합니다. – zellio

답변

3
var myPattern = new RegExp("^0\(5\d{2}\) \d{3} \d{2} \d{2}$"); 

RegExp()를 사용하는 경우 패턴을 인용해야합니다.

또한 인용 부호를 사용하지 않으려면 regexp 구문을 사용해야하므로 올바른 정규 표현식이 아닙니다. 예 :

var myregex = /<some pattern here>/g 
6

당신은 대신 / /

"^0\\(5\\d{2}\\) \\d{3} \\d{2} \\d{2}$" 

그리고 myPattern.test(myStr)의, (^0\(5\d{2}\) \d{3} \d{2} \d{2}$) 내부 따옴표를 넣어해야하고, 당신이 RegExp를 사용하려고하는 경우 또한, 백 슬래시를 이스케이프 할 필요가 .match을 사용하는 것보다 더 바람직하다 왜냐하면 .match은 실제로 필요하지 않은 배열을 반환하기 때문입니다.