下面給大家介紹下JS正則表達(dá)式 必須包含數(shù)字、字母、特殊字符
js正則表達(dá)式要求:
1. 必須包含數(shù)字、英文字母、特殊符號且大于等于8位
2. 特殊符號包括: ~!@#$%^*
正則表達(dá)式如下:
/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^*])[\da-zA-Z~!@#$%^*]{8,}$/
解釋:
這里主要用到了js正則表式中的正向前瞻 ?=,舉個例子
/\d/.exec( 'abc2abc' ) 匹配結(jié)果為2,釋義:匹配一個數(shù)字
/\d(?=a)/.exec( 'abc2abc' ) 匹配結(jié)果為2,釋義:匹配一個數(shù)字,但是這個數(shù)字后面必須跟著字母a
/\d(?=a)/.exec( 'abc2bc' ) 匹配結(jié)果為null
由此可以看出,?= 匹配結(jié)果中不包含它所匹配的字符,但是待匹配字符串必須符合它所對應(yīng)的規(guī)則
當(dāng)有多個正向前瞻規(guī)則時它們是并列的,不是串行的,比如
/\d(?=a)(?=b)/.exec( 'abc2abc' )
匹配結(jié)果為null,那如果想匹配一個數(shù)字,后面必須跟著字母a和b可以這樣寫
/\d(?=a)(?=.b)/.exec( 'abc2abc' ),
當(dāng)然這是為了演示它的規(guī)則,其實(shí)可以這樣寫/\d(?=ab)/.exec( 'abc2abc' )
對于/^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^*])[\da-zA-Z~!@#$%^*]{8,}$/
其實(shí)整個正則表示可以分為三部分:
/^(?=.*\d)[\da-zA-Z~!@#$%^*]{8,}$/
/^(?=.*[a-zA-Z])[\da-zA-Z~!@#$%^*]{8,}$/
/^(?=.*[~!@#$%^*])[\da-zA-Z~!@#$%^*]{8,}$/
待匹配字符串必須同時符合這三部分才可以
知識點(diǎn)擴(kuò)展:
js 正則表達(dá)式 匹配除漢字,字母,數(shù)字,逗號,句號外的特殊字符(用來規(guī)范輸入內(nèi)容)
/[^\u4e00-\u9fa5a-zA-Z\d,\.,。]+/
其中\(zhòng)u4e00-\u9fa5匹配漢字,a-zA-Z匹配字母,\d匹配數(shù)字,,.,。匹配逗號和句號,^表示非,+表示盡可能多的匹配。
總結(jié)
以上所述是小編給大家介紹的JS正則表達(dá)式必須包含數(shù)字、字母、特殊字符,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
您可能感興趣的文章:- JavaScript 斐波那契數(shù)列 倒序輸出 輸出100以內(nèi)的質(zhì)數(shù)代碼實(shí)例
- p5.js實(shí)現(xiàn)斐波那契螺旋的示例代碼
- Go 結(jié)構(gòu)體、數(shù)組、字典和 json 字符串的相互轉(zhuǎn)換方法
- 微信小程序如何調(diào)用json數(shù)據(jù)接口并解析
- js獲取對象,數(shù)組所有屬性鍵值(key)和對應(yīng)值(value)的方法示例
- JS判斷數(shù)組里是否有重復(fù)元素的方法小結(jié)
- JS計(jì)算斐波拉切代碼實(shí)例