<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
字元 | 說明 |
---|---|
將下一字元標記為特殊字元、文字、反向參照或八進位制跳脫符。例如, n匹配字元 n。n 匹配換行符。序列 \\ 匹配 \ ,\( 匹配 (。 | |
^ | 匹配輸入字串開始的位置。如果設定了 RegExp 物件的 Multiline 屬性,^ 還會與"n"或"r"之後的位置匹配。 |
$ | 匹配輸入字串結尾的位置。如果設定了 RegExp 物件的 Multiline 屬性,$ 還會與"n"或"r"之前的位置匹配。 |
* | 零次或多次匹配前面的字元或子表示式。例如,zo* 匹配"z"和"zoo"。* 等效於 {0,}。 |
+ | 一次或多次匹配前面的字元或子表示式。例如,"zo+"與"zo"和"zoo"匹配,但與"z"不匹配。+ 等效於 {1,}。 |
? | 零次或一次匹配前面的字元或子表示式。例如,"do(es)?“匹配"do"或"does"中的"do”。? 等效於 {0,1}。 |
{n} | _n _是非負整數。正好匹配 n 次。例如,"o{2}"與"Bob"中的"o"不匹配,但與"food"中的兩個"o"匹配。 |
{n,} | _n _是非負整數。至少匹配 _n _次。例如,"o{2,}“不匹配"Bob"中的"o”,而匹配"foooood"中的所有 o。"o{1,}“等效於"o+”。"o{0,}“等效於"o*”。 |
{n,m} | m 和 n 是非負整數,其中 n <= m。匹配至少 n 次,至多 m 次。例如,"o{1,3}"匹配"fooooood"中的頭三個 o。‘o{0,1}’ 等效於 ‘o?’。注意:您不能將空格插入逗號和數位之間。 |
? | 當此字元緊隨任何其他限定符(*、+、?、{n}、{n,}、{n,m})之後時,匹配模式是"非貪心的"。"非貪心的"模式匹配搜尋到的、儘可能短的字串,而預設的"貪心的"模式匹配搜尋到的、儘可能長的字串。例如,在字串"oooo"中,"o+?“只匹配單個"o”,而"o+“匹配所有"o”。 |
"[a-zA-Z]{1,}$"
"[0-9]{1,}$"
"((^[a-zA-Z]{1,}[0-9]{1,}[a-zA-Z0-9]*)+)|((^[0-9]{1,}[a-zA-Z]{1,}[a-zA-Z0-9]*)+)$"
"[a-zA-Z0-9]+$"
"\w+$"
/** * 假定設定密碼時,密碼規則為: 字母、數位、特殊符號,至少匹配2種 * 則密碼可能出現的情況有: * 1、數位+特殊符號 * 2、字母+特殊符號 * 3、字母+數位 * 4、字母+數位+特殊符號 * (組合與順序無關) * 解決思路: * 1、遍歷字串的字元陣列,檢視是否包含目標特殊字元,若包含,則標記字串 * 包含特殊字元,並替換當前特殊字元為''。 * 2、判斷剩下的字元組成的字串,是否匹配以下情況 * - 純字母 * - 純數位 * - 字母+數位 * 3、字串匹配規則 * 純字母+包含特殊字元 ---- 匹配通過 * 純數位+包含特殊字元 ---- 匹配通過 * 字母+數位+包含個數位符 ---- 匹配通過 */ //特殊字元 public static final String SPEC_CHARACTERS = " !"#$%&'()*+,-./:;<=>?@\]\[^_`{|}~"; // 純字母 public static final String character = "[a-zA-Z]{1,}$"; // 純數位 public static final String numberic = "[0-9]{1,}$"; // 字母和數位 public static final String number_and_character = "((^[a-zA-Z]{1,}[0-9]{1,}[a-zA-Z0-9]*)+)" + "|((^[0-9]{1,}[a-zA-Z]{1,}[a-zA-Z0-9]*)+)$"; // 字母或數位 public static final String number_or_character = "[a-zA-Z0-9]+$"; // 字母數位下劃線 public static final String ncw = "\w+$"; public static boolean checkPassword(String targetString) { String opStr = targetString; boolean isLegal = false; boolean hasSpecChar = false; char[] charArray = opStr.toCharArray(); for (char c : charArray) { if (SPEC_CHARACTERS.contains(String.valueOf(c))) { hasSpecChar = true; // 替換此字串 opStr = opStr.replace(c, ' '); } } String excSpecCharStr = opStr.replace(" ", ""); boolean isPureNum = Pattern.compile(numberic).matcher(excSpecCharStr).matches(); boolean isPureChar = Pattern.compile(character).matcher(excSpecCharStr).matches(); boolean isNumAndChar = Pattern.compile(number_and_character).matcher(excSpecCharStr).matches(); isLegal = ((isPureNum && hasSpecChar) || (isPureChar && hasSpecChar) || isNumAndChar && hasSpecChar) || isNumAndChar; System.out.println("字串:" + targetString + ",是否符合規則:" + isLegal); System.out.println("---------------"); return isLegal; } public static void main(String[] args) { checkPassword("fasdagd"); checkPassword("41234123"); checkPassword("#$%^&&*("); checkPassword("fasd$$"); checkPassword("41234%%%"); checkPassword("fasd41^(324"); checkPassword("fa413%^&*"); checkPassword("&%fa413%^&*"); }
測試結果:
正向否定方式:
^(?![d]+$)(?![a-z]+$)(?![A-Z]+$)[da-zA-z]{8,16}$
console> console.log(/^(?![d]+$)(?![a-z]+$)(?![A-Z]+$)[da-zA-z]{8,16}$/g.test("abcdefgh")); false console> console.log(/^(?![d]+$)(?![a-z]+$)(?![A-Z]+$)[da-zA-z]{8,16}$/g.test("abcdefgH")); true console> console.log(/^(?![d]+$)(?![a-z]+$)(?![A-Z]+$)[da-zA-z]{8,16}$/g.test("abcdefg8")); true console> console.log(/^(?![d]+$)(?![a-z]+$)(?![A-Z]+$)[da-zA-z]{8,16}$/g.test("abcdefG8")); true console> console.log(/^(?![d]+$)(?![a-z]+$)(?![A-Z]+$)[da-zA-z]{8,16}$/g.test("12345678")); false console> console.log(/^(?![d]+$)(?![a-z]+$)(?![A-Z]+$)[da-zA-z]{8,16}$/g.test("12345678a")); true
這個表示式也可以實現相同的功能
^(?!^(d+|[a-z]+|[A-Z]+)$)[da-zA-Z]{8,16}$
到此這篇關於Java正則校驗密碼至少包含字母數位特殊符號中的2種的文章就介紹到這了,更多相關Java正則校驗密碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援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