正则表达式:密码中至少包含大写字母、小写字母、数字、特殊字符等字符中的2种或3种
生活随笔
收集整理的這篇文章主要介紹了
正则表达式:密码中至少包含大写字母、小写字母、数字、特殊字符等字符中的2种或3种
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目錄
- 前言
- 先行斷言
- 是否有那么一個開始符號,它后面的字符中包含小寫字母(a-z)
- 正向否定查找
- 是否有那么一個開始符號,它后面不全是小寫字母(a-z)
- 密碼中只包含字母且長度在8-16之間
- 密碼中同時含字母和數(shù)字且長度在8-16之間
- 密碼中同時含大寫字母、小寫字母、數(shù)字和特殊字符且長度在8-16之間
- 密碼中允許出現(xiàn)數(shù)字、大寫字母、小寫字母,但至少包含其中2種且長度在8-16之間(三種符號任取其二)
- 密碼中允許出現(xiàn)數(shù)字、大寫字母、小寫字母、特殊字符(!#$%^&*),但至少包含其中2種且長度在8-16之間(四種符號任取其二或三)
- 密碼中允許出現(xiàn)數(shù)字、大寫字母、小寫字母、特殊字符(!#$%^&*),但至少包含其中3種且長度在8-16之間(四種符號任取其三)
- 參考
前言
略。
先行斷言
是否有那么一個開始符號,它后面的字符中包含小寫字母(a-z)
正則表達(dá)式:是否有那么一個開始符號,它后面的字符中包含小寫字母(a-z)
^(?=.*[a-z])chrome console中測試:
console> console.log("a".match(/^(?=.*[a-z])/g)); [""] console> console.log("aa".match(/^(?=.*[a-z])/g)); [""] console> console.log("a1".match(/^(?=.*[a-z])/g)); [""] console> console.log("1a".match(/^(?=.*[a-z])/g)); [""] console> console.log("11".match(/^(?=.*[a-z])/g)); null- 上述示例均找到了匹配內(nèi)容,但匹配的內(nèi)容是""(匹配了個空字符串)
- "a1".match(/(?=[a-z])/g) :(匹配內(nèi)容)a1
- "aa".match(/(?=[a-z])/g) :(匹配內(nèi)容)a(匹配內(nèi)容)a
在線工具測試
正向否定查找
是否有那么一個開始符號,它后面不全是小寫字母(a-z)
正則表達(dá)式:是否有那么一個開始符號,它后面不全是小寫字母(a-z)
^(?![a-z]+$)chrome console中測試:
console> console.log("a".match(/^(?![a-z]+$)/g)); null console> console.log("aa".match(/^(?![a-z]+$)/g)); null console> console.log("a1".match(/^(?![a-z]+$)/g)); [""] console> console.log("1a".match(/^(?![a-z]+$)/g)); [""]密碼中只包含字母且長度在8-16之間
^[a-z]{8,16}$ console> console.log(/^[a-z]{8,16}$/g.test("a")); false console> console.log(/^[a-z]{8,16}$/g.test("abcdefg")); false console> console.log(/^[a-z]{8,16}$/g.test("abcdefgh")); true console> console.log(/^[a-z]{8,16}$/g.test("abcdefg1")); false console> console.log(/^[a-z]{8,16}$/g.test("abcdefgh1")); false console> console.log(/^[a-z]{8,16}$/g.test("abcdefghabcdefgh")); true console> console.log(/^[a-z]{8,16}$/g.test("abcdefghabcdefgha")); false密碼中同時含字母和數(shù)字且長度在8-16之間
^(?=.*\d)(?=.*[a-zA-Z])[\da-zA-Z]{8,16}$- (?=.*\d) : 先行斷言+貪婪模式。匹配后面包含數(shù)字的字符。
- ^(?=.*\d)(?=.*[a-zA-Z]) : 匹配后面既有數(shù)字又有字母的開始字符。
密碼中同時含大寫字母、小寫字母、數(shù)字和特殊字符且長度在8-16之間
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!#$%^&*])[\da-zA-Z!#$%^&*]{8,16}$密碼中允許出現(xiàn)數(shù)字、大寫字母、小寫字母,但至少包含其中2種且長度在8-16之間(三種符號任取其二)
- 包含三種符號中的一種符號,無效。
- 包含三種符號中的二種符號,有效。
- 包含三種符號中的三種符號,有效。
正向否定方式:
^(?![\d]+$)(?![a-z]+$)(?![A-Z]+$)[\da-zA-z]{8,16}$- (?![\d]+$):正向否定查找。匹配向后直到結(jié)尾均為數(shù)字的字符。
- ^(?![\d]+$)(?![a-z]+$)(?![A-Z]+$):匹配向后直到結(jié)尾既不是純數(shù)字,又不是純消息字母,又不是純大寫字母的開始字符。
這個表達(dá)式也可以實(shí)現(xiàn)相同的功能
^(?!^(\d+|[a-z]+|[A-Z]+)$)[\da-zA-Z]{8,16}$- ^(\d+|[a-z]+|[A-Z]+)$:從頭到尾要么是純數(shù)字,要么是純小寫字母,要么是純大寫字母。
- ^(?!^(\d+|[a-z]+|[A-Z]+)$):匹配向后直到結(jié)尾既不是純數(shù)字,又不是純消息字母,又不是純大寫字母的開始字符。
密碼中允許出現(xiàn)數(shù)字、大寫字母、小寫字母、特殊字符(!#$%^&*),但至少包含其中2種且長度在8-16之間(四種符號任取其二或三)
- 包含四種符號中的一種符號,無效。
- 包含四種符號中的二種符號,有效。
- 包含四種符號中的三種符號,有效。
- 包含四種符號中的四種符號,有效。
正向否定方式:
^(?![\d]+$)(?![a-z]+$)(?![A-Z]+$)(?![!#$%^&*]+$)[\da-zA-z!#$%^&*]{8,16}$- 既然“四種符號任取其二”,那么“只有一種符號”時可定不行。使用正向否定查找將只包含一種符號的情況剔除。
- 使用正向否定查找將只包含一種符號的情況剔除,則剩下的情況可能是“包含四種符號中的二種符號”,也可能是“包含四種符號種的三種符號”,還可能是“包含四種符號種的四種符號”。
密碼中允許出現(xiàn)數(shù)字、大寫字母、小寫字母、特殊字符(!#$%^&*),但至少包含其中3種且長度在8-16之間(四種符號任取其三)
- 包含四種符號中的一種符號,無效。
- 包含四種符號中的二種符號,無效。
- 包含四種符號中的三種符號,有效。
- 包含四種符號中的四種符號,有效。
正向否定方式:
^(?![\da-z]+$)(?![\dA-Z]+$)(?![\d!#$%^&*]+$)(?![a-zA-Z]+$)(?![a-z!#$%^&*]+$)(?![A-Z!#$%^&*]+$)[\da-zA-z!#$%^&*]{8,16}$先行斷言方式:
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[\da-zA-Z!#$%^&*]{8,16}$ ^(?=.*\d)(?=.*[a-z])(?=.*[!#$%^&*])[\da-zA-Z!#$%^&*]{8,16}$ ^(?=.*\d)(?=.*[A-Z])(?=.*[!#$%^&*])[\da-zA-Z!#$%^&*]{8,16}$ ^(?=.*[a-z])(?=.*[A-Z])(?=.*[!#$%^&*])[\da-zA-Z!#$%^&*]{8,16}$參考
正則表達(dá)式截取URL參數(shù)值
正則表達(dá)式 密碼 需包含字母數(shù)字特殊字符
正則表達(dá)式
正則表達(dá)式 - 語法
正則表達(dá)式在線測試
在線正則表達(dá)式測試
【正則】至少包括字母數(shù)字特殊字符中任意2種的正則表達(dá)式
總結(jié)
以上是生活随笔為你收集整理的正则表达式:密码中至少包含大写字母、小写字母、数字、特殊字符等字符中的2种或3种的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS16隐藏的15个细节!这些功能才是
- 下一篇: linux中 ln -s 软链接