<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
正規表示式:密碼必須至少包含八個字元、至少包含一個數位、小寫和大寫的字母以及特殊字元
我需要一個正規表示式來檢查密碼:
密碼至少包含八個字元、至少包含一個數位、同時包含小寫字母和大寫字母以及特殊字元,例如#
,?
,!
)
不能是舊密碼或包含使用者名稱,"password"
或"websitename"
這裡是我的驗證表示式,用於限制:八個字元,包括一個大寫字母,一個小寫字母和一個數位或特殊字元。
(?=^.{8,}$)((?=.*d)|(?=.*W+))(?![.n])(?=.*[A-Z])(?=.*[a-z]).*$"
那麼,如何寫一個正則,限制密碼必須是八個字元,包括一個大寫字母,一個特殊字元和字母數位字元?
至少八個字元,至少一個字母和一個數位:
"^(?=.*[A-Za-z])(?=.*d)[A-Za-zd]{8,}$"
至少八個字元,至少一個字母,一個數位和一個特殊字元:
"^(?=.*[A-Za-z])(?=.*d)(?=.*[$@$!%*#?&])[A-Za-zd$@$!%*#?&]{8,}$"
最少八個字元,至少一個大寫字母,一個小寫字母和一個數位:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*d)[a-zA-Zd]{8,}$"
至少八個字元,至少一個大寫字母,一個小寫字母,一個數位和一個特殊字元:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[$@$!%*?&])[A-Za-zd$@$!%*?&]{8,}"
最少八個最多十個字元,至少一個大寫字母,一個小寫字母,一個數位和一個特殊字元:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[$@$!%*?&])[A-Za-zd$@$!%*?&]{8,10}"
可以使用這個正規表示式:
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$
這個正規表示式將強制執行這些規則:
至少一個大寫字母English letter,(?=.*?[A-Z])
至少一個小寫英文字母,(?=.*?[a-z])
至少有一位數位,(?=.*?[0-9])
至少有一個特殊字元,(?=.*?[#?!@$%^&*-])
最小八個長度.{8,}
(帶錨)
正規表示式沒有AND運運算元,所以編寫匹配有效的密碼的正規表示式相當困難,特別是當有效性被某些東西AND
別的東西等定義時...
但是,正規表示式確實有一個OR運運算元,所以只需應用DeMorgan的定理,並編寫一個與無效密碼相匹配的正規表示式:
任何少於八個字元或任何沒有數位或任何沒有大寫字母或任何沒有小寫字母或任何沒有特殊字元的任何字串。
所以:
^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$
如果能匹配上這個正規表示式的話,這是一個無效的密碼。
對最佳答案的一個小小的改進:由於特殊字元僅限於鍵盤中的特殊字元,因此可用於表達任何特殊字元:
^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[d]){1,})(?=(.*[W]){1,})(?!.*s).{8,}$
這個正規表示式將強制執行這些規則:
至少一個大寫英文字母
至少一個小寫英文字母
至少一位數位
至少一個特殊字元
最少八個字元
在我的環境中,按照最佳答案來做,我遇到了一些困難。例如,對字元如;
或[
驗證失敗。我不想白名單列舉我的特殊字元,所以我用[^ws]
作為測試 - 只是放置匹配非字元(包括數位)和非空格字元。總而言之,這個做法對我來說比較有效...
至少8
字元
至少1
數位字元
至少1
小寫字母
至少1
大寫字母
至少1
特殊字元
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^ws]).{8,}$/
匯入JavaScript檔案jquery.validate.min.js
。
就可以使用如下方法:
$.validator.addMethod("pwcheck", function (value) { return /[@#$%^&* _+!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value) });
這個正規表示式可以表達:
至少一張大寫英文字母
至少一個小寫英文字母
至少一位數位
至少一個特殊字元
滿足如下條件:
最少六個字元
至少有一個大寫字元
至少一個小寫字元
至少一個特殊字元
正規表示式:
"/^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[$@$!%*?&.])[A-Za-zd$@$!%*?&.]{6, 20}/"
滿足如下條件,且有可選特殊字元:
至少一個特殊字元
至少一個數位
特殊字元是可選的
最少6個字元,最多16個字元
正規表示式:
"/^(?=.*d)(?=.*[a-zA-Z]).{6,20}$/"
如果不需要最小和最大條件,可以刪除.{6, 16}
6是最小字元數限制
20是最大字元限制
?=表示匹配表示式
需要滿足的條件,以及對應的正規表示式:
Conditions: 1] Min 1 uppercase letter. 2] Min 1 lowercase letter. 3] Min 1 special character. 4] Min 1 number. 5] Min 8 characters. 6] Max 30 characters. Regex: /^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[#$@!%&*?])[A-Za-zd#$@!%&*?]{8,30}$/
根據你的需要,下面這個正規表示式應該能正常工作的:
^(?=(.*d){1})(.*S)(?=.*[a-zA-ZS])[0-9a-zA-ZS]{8,}
只需建立一個字串變數,分配模式,並建立一個布林方法,如果模式匹配正確則返回true,否則返回false。
範例:
String pattern = "^(?=(.*d){1})(.*S)(?=.*[a-zA-ZS])[0-9a-zA-ZS]{8,}"; String password_string = "Type the password here" private boolean isValidPassword(String password_string) { return password_string.matches(Constants.passwordPattern); }
試試這個正規表示式:
^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])[a-zA-Z0-9@#$%^&+=]*$
這個正規表示式對我來說非常完美。
function myFunction() { var str = "c1TTTTaTTT@"; var patt = new RegExp("^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])[a-zA-Z0-9@#$%^&+=]*$"); var res = patt.test(str); console.log("Is regular matches:", res); }
以上就是一文詳解密碼的正規表示式寫法的詳細內容,更多關於密碼正規表示式寫法的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45