我在javascript上使用正則表達式的密碼驗證有問題。的標準是:使用正則表達式的Javascript密碼驗證
- 具有至少一個或更多個字母(它可以是上殼體或下殼體)
- 具有至少一個或多個數
- 字符長度最小3和最大30
我希望有人能幫助我解決這個問題:)
var ch_pass = /^([0-9]+).([a-zA-Z]+).({3,30})$/;
我在javascript上使用正則表達式的密碼驗證有問題。的標準是:使用正則表達式的Javascript密碼驗證
我希望有人能幫助我解決這個問題:)
var ch_pass = /^([0-9]+).([a-zA-Z]+).({3,30})$/;
您可以使用前瞻這樣的:
var ch_pass = /^(?=.*?[0-9])(?=.*?[a-zA-Z]).{3,30}$/;
感謝sir 你的代碼解決了我的問題:) – user3385131
很高興知道,你可以通過點擊答案左上角的刻度標記來接受答案。 – anubhava
'。*?'==>不是'。*'已經夠了嗎? – donfuxx
我不會建議嘗試做這整個檢查在一個單一的正則表達式,因爲它只是在複雜的。單獨做每個條件。
具有至少一個字母:
var has_letters = (/[a-zA-Z]/).test(password);
具有至少一個數:
var has_numbers = (/[0-9]/).test(password);
具有3和30之間的字符(含):
var has_length = 3 <= password.length && password.length <= 30;
這都可以纏繞成函數:
function is_password_valid(password) {
var has_letters = (/[a-zA-Z]/).test(password);
var has_numbers = (/[0-9]/).test(password);
var has_length = 3 <= password.length && password.length <= 30;
return has_letters && has_numbers && has_length;
}
或者,如果你喜歡的東西更密:
function is_password_valid(password) {
return ((/[a-zA-Z]/).test(password)
&& (/[0-9]/).test(password)
&& password.length >= 3
&& password.length <= 30);
}
您可以通過檢查該值的'.length'輕鬆檢查#3。對於#1和#2,只需使用兩個正則表達式來檢查每個值是否包含字母和數字字符。例如:'var value =「您的輸入」,alpha =/[A-Za-z] /,numeric =/[0-9] /; if(value.length <3 || value.length> 30 ||!alpha.test(value)||!numeric.test(value)){/ * INVALID * /}'。在我看來 – Ian