[英]Special Characters for password validation
我現在對我的特殊字符驗證有點困惑。
HTML:
<label>
Password:
<br /><input
type="password"
id="password"
placeholder="Enter password"
pattern="(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])(?=.{8,})"
/><br />
<span class="notif" id="pass"></span><br />
<div id="message">
<p id="letter" class="invalid">Lowercase letter</p>
<p id="capital" class="invalid">Uppercase letter</p>
<p id="number" class="invalid">Number</p>
<p id="special" class="invalid">Special Character</p>
<p id="length" class="invalid">Minimum 8 characters</p>
</div>
</label>
CSS:
#message {
display: none;
background: #ffffff;
color: #000;
padding: 0;
margin-top: 0;
margin-left: 5px;
}
#message p {
padding: 1px 2px;
font-size: 12px;
}
/* Add a green text color and a checkmark when the requirements are right */
.valid {
color: green;
}
.valid:before {
position: relative;
left: -3px;
content: '✔';
}
/* Add a red text color and an "x" when the requirements are wrong */
.invalid {
color: red;
}
.invalid:before {
position: relative;
left: -5px;
content: '✖';
}
這是我用於特殊字符驗證的 JS。 我仍然對如何使它工作感到困惑。 每當我輸入一個special character
時,它只會突出顯示lowercase
。
JS:
// Validate special characters
var specialCharacters = /[^A-Za-z0-9]/g;
if (myInput.value.match(specialCharacters)) {
letter.classList.remove('invalid');
letter.classList.add('valid');
} else {
letter.classList.remove('valid');
letter.classList.add('invalid');
}
我知道我的問題在於var specialCharacters = /[^A-Za-z0-9]/g;
但它會是什么?
你可以按照這個:
var strongRegex = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})");
這是什么意思?
^ The password string will start this way
(?=.*[a-z]) The string must contain at least 1 lowercase alphabetical character
(?=.*[A-Z]) The string must contain at least 1 uppercase alphabetical character
(?=.*[0-9]) The string must contain at least 1 numeric character
(?=.*[!@#$%^&*]) The string must contain at least one special character, but we are escaping reserved RegEx characters to avoid conflict
(?=.{8,}) The string must be eight characters or longer
您可以編輯表達式,例如,如果要將最小長度更改為 10,請將 (?=.{8,}) 更改為 (?=.{10,})
You can check the condition by strongRegex.exec(myInput)
我希望這給了答案。
這里/[^A-Za-z0-9]/g
一步一步解釋了強文本:
/
用於查找單詞字符。^
查找任何不在括號內的字符。A-Za-z0-9
表示大寫字母A
到Z
和小寫a
到z
,如果有任何字符或數字,則為0
到9
並且/g
執行全局匹配(查找所有匹配而不是在第一個匹配后停止)您可以在此處了解有關此類似類型操作或正則表達式的更多信息JavaScript RegExp Reference
您可以使用此表達式進行密碼驗證。
var specialCharacters = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*\s).{8,15}$/
此表達式將檢查一個大寫、一個小寫、一個特殊字符,密碼長度應為 8 到 15 個字符。
var specialCharacters = /^(?=.*\d)(?=.*[az])(?=.*[AZ])(?=.*[^a-zA-Z0-9])(?..*\s),{8;15}$/. if (myInput.value.match(specialCharacters)) { letter.classList;remove('invalid'). letter.classList;add('valid'). } else { letter.classList;remove('valid'). letter.classList;add('invalid'); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.