2012-10-05 3 views
-1

이것은 계속됩니다 php regex: phone number 7-12 digits may contain hypen or spacejavascript regex backrefence

저는 여전히 역 참조를 이해하려고합니다. 다음은 역 참조를 테스트하기 위해 생각해 낸 JavaScript 코드입니다. 이 코드를 실행하면 null 만 출력됩니다. 내가 어디로 잘못 가고 있니?

<script type="text/javascript"> 
function myRegexFunc() 
{ myString="abcabcxabcdefghi"; 
    patt1=new RegExp("(abc)?\1x\1"); 
    document.write(patt1.exec(myString)); 
} 
</script> 
</head> 

<body onload="myRegexFunc()"> 
</body> 

답변

3

\의 문자열을 이스케이프 처리해야합니다.

patt1 = new RegExp("(abc)?\\1x\\1"); 

또는 리터럴 정규식 사용할 수 있습니다 : 나는 모두를 시도하고 내가 출력지고있어

patt1 = /(abc)?\1x\1/; 
+0

을 : ABC를 abcabcxabc을. – vaanipala

+0

쉼표 뒤에 "abc"가 나오는 이유를 말할 수 있습니까? 결과는 "abcabccxabc"여야한다고 생각했습니다. 고맙습니다. – vaanipala

+0

@vaanipala 결과가 배열이기 때문에. – xdazz