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