为什么这个正则表达式不能在Javascript中运行?

时间:2010-12-08 10:31:26

标签: javascript regex

我目前在我的脚本中有这个,我不确定为什么它不起作用。它适用于正则表达式测试程序,它是一个非常简单的正则表达式。     

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 个答案:

答案 0 :(得分:4)

您使用单引号而不是双引号。将模式更改为此,它将起作用:

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

另外,请务必注意Tim Pietzcker在评论中指出的点!