我目前的脚本中有这个,但我不太确定为什么它不起作用。它适用于正则表达式测试器,并且是一个非常简单的正则表达式。
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 pattern = /<input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="((\d|\w)+)" \/>/;
此外,请务必注意 Tim Pietzcker 在他的评论中指出的那些点!
关于javascript - 为什么这个正则表达式在 Javascript 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386464/