function demoMatchClick() {
var validString = /^[a-z](?=[a-z]*[0-9])[a-z0-9]{0,6}[a-z]$/
var re = new RegExp(validString);
if (document.form1.subject.value.test(re)) {
alert("Successful match");
} else {
alert("No match");
}
}
<INPUT TYPE=SUBMIT VALUE="Replace" ONCLICK="demoReplaceClick()">
我不能讓它彈出警報彈出我的JavaScript函數來測試一個密碼不起作用
我希望這些規則被強制執行
•Not have upper-case letters. •Begin with a letter. •Have at least 1 digit(s) not at the beginning and end. •Have up to 8 alphanumeric •Does NOT have any symbols like @#$ characters (symbols like [email protected]#$%^&*()-+).
我現在使用一個按鈕來執行代碼。
你不能得到任何警報彈出?你在哪裏調用'demoMatchClick()'? –
嘗試使用Javascript正則表達式沙盒,例如http://regexpal.com/。另外,當'validString'已經是一個正則表達式時,爲什麼你要'新的RegeExp'? – 2012-06-19 14:02:41
從安全的角度來看,你的規則非常糟糕。你告訴一個攻擊者,第一個字符肯定是一個字母,密碼不是以數字結尾,所有字符都是小寫字母。最大長度只有8個字符。它壞了。讓用戶擁有冗長的密碼,不需要強制執行,更安全(確實只需要最小長度)。 –