0
我目前在我的脚本中有这个,我不确定它为什么不起作用。它在一个正则表达式测试器上工作,它是一个非常简单的正则表达式。 为什么不是这个正则表达式在JavaScript中工作?
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'。 有人可以指出这个问题吗?
我认为这是因为你正试图完全匹配该模式,当var页面包含字符之前和之后的模式。尝试在开始和结束时放置一个*。您可能还需要指定跨越新行的匹配。 – 2010-12-08 10:35:45
请注意`.`表示正则表达式中的“任何字符”。因此,虽然它也会匹配一个字面点,但如果您希望正则表达式匹配一个实际的点,则应该更具体一些,并写入`\ .`。 – 2010-12-08 10:35:46