我目前在我的脚本中有这个,我不确定为什么它不起作用。它适用于正则表达式测试程序,它是一个非常简单的正则表达式。
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'。 有人可以指出问题吗?
答案 0 :(得分:4)
您使用单引号而不是双引号。将模式更改为此,它将起作用:
var pattern = /<input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="((\d|\w)+)" \/>/;
另外,请务必注意Tim Pietzcker在评论中指出的点!