2010-12-08 6 views
0

현재 스크립트에이 내용이 있는데 왜 작동하지 않는지 잘 모르겠습니다. 그것은 정규식 테스터에서 작동하며 꽤 간단한 정규식입니다. 이 정규식이 자바 스크립트에서 작동하지 않는 이유는 무엇입니까?

var page = '<div id="loginOverlay" class="loginOverlay">' + 
'<div id="loginForm">' + 
     '<form name="loginForm" method="post" action="/test.jspx" onsubmit="grayLoginAnonymous();return false;" style="margin:0px;" autocomplete="off"><input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="21a9e5a4197cfaefec409d8473f29a6e" />'+  
    ' </form>'+ 
    ' </div> '+ 
' </div>'; 

var pattern = /<input type='hidden' name='org.apache.struts.taglib.html.TOKEN' value='((\d|\w)+)' \/>/; 
var match = page.match(pattern); 
document.write(match); 
console.log(page); 
console.log(match); 

</script> 

와 일치하면 'null'이 반환됩니다. 누군가가 문제를 지적 할 수 있습니까?

+1

var page가 그 패턴의 전후에 문자를 포함하고있을 때 그 패턴을 정확히 일치 시키려고하기 때문이라고 생각합니다. . *를 맨 앞에두고 끝내십시오. 새로운 행에서 일치를 지정해야 할 수도 있습니다. –

+1

'.'는 정규 표현식에서 "임의의 문자"를 의미한다는 것을 기억하십시오. 따라서 리터럴 도트와 일치하는 반면, 정규식을 실제 도트와 일치 시키려면 좀 더 구체적이고'\ .'라고 써야합니다. –

+0

큰 따옴표와 작은 따옴표에 대한 내 실수였습니다. 고마워. –

답변

4

큰 따옴표 대신 작은 따옴표를 사용했습니다. 이것에 패턴을 변경하고 그것을 작동합니다

var pattern = /<input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="((\d|\w)+)" \/>/; 

을 또한, 팀 Pietzcker 같은 점을 돌볼 수 있는지 확인하는 것은 자신의 의견에서 지적!

+0

오. 나의. 하나님. 이 얼마나 바보 같은 실수 야. Jakob에게 감사드립니다. –

관련 문제