正则基础学习1 这俩天补上正则全部内容,让你简单的学会正则,欢迎收藏当文档
正則 詳解 包括小案例 可以做復習筆記和查看小文檔
密碼驗證:
var reg = /^(?=\D+\d)(?=.*[A-Z])[a-zA-Z0-9]{8-16}$/;
正則表達式修飾符
g i m g // 全局匹配 i // 不區分大小寫 m // 多行匹配 \n 產生的換行reg 返回正則表達式基礎
var reg = /a/g console.log(new reg.constructor()); console.log(reg.compile());exec(“str”) 在字符串中找到對應正則的內容 index為下標開始的位置 全局匹配無效
var reg = /a/g console.log(reg.exec("bacead")); // outPut // ['a', index: 1, input: 'bacead', groups: undefined]test(“str”) 是否可以在字符串中找到滿足條件的內容 返回true或false
var reg = /a/gconsole.log(reg.test("bbcebd")); // outPut flaseconsole.log(reg.test("bacebd")); // outPut trueconsole.dir(reg)
outPut=>{/a/gdotAll: falseflags: "g"global: truehasIndices: falseignoreCase: falselastIndex: 0multiline: falsesource: "a"sticky: falseunicode: false[[Prototype]]: Object}// source 表示 正則內容// flags 對應正則修飾符字符串方法 replace() search() match() split()
// search 方法 可以按照條件查找 var str = "1asdfacdf"; var index1 = str.search("a"); var index2 = str.search(/a/g); console.log(index); // 1 1// 擴展 a后面有c的索引 var str = "1asdfacsdf"; var index = str.search(/a(?=c)/g); console.log(index); // 5// split(str) 截取 console.log("a|b&c|d&e".split("|")); // out ['a', 'b&c', 'd&e'] console.log("a|b&c|d&e".split(/[|&]/)); // ['a', 'b', 'c', 'd', 'e'] console.log("http://www.163.com/news/nsl/index.html?a=1&b=2".split(/(?<=:\/\/.*?)\//));// replace(str) 方法 // 替換所有的a 變成0 var str = "adfnsfasdafa"; str = str.replace(/a/g, "0"); console.log(str);// 可以替換多個,可以每次替換時執行后面的函數,函數內返回return結果會替換內容 str = str.replace(/a/g, (item, index)=>{console.log(item, index); }); console.log(str);// match(str) 如果沒有全局查找,沒有群組, 方法等同于正則的exec // 返回滿足正則全部查找內容 console.log("adfnsfasdafa".match(/a/g)); // (4) ['a', 'a', 'a', 'a'] // 滿足返回群組的內容 console.log("4[ac]".match(/(\d)\[([a-z]*)]/));元字符
- 定義: var reg = /a/; a 就是元字符
一、 通配符
“.” 匹配任意一個字符
console.log(“abacad”.match(/a./g));
// outPut (3) [‘ab’, ‘ac’, ‘ad’]
“” 轉義字符 取消元字符原有的作用 恢復為字符特征
console.log(“aba.c.a.dac”.match(/a./g));
// outPut (2) [‘a.’, ‘a.’]
“[]” 內可以滿足一個字符串的替代 [內的 “.” 不在具有通配符的作用]
console.log(“abacad”.match(/a[bd]/g));
// outPut (2) [‘ab’, ‘ad’]
[] 內的 - 表示多少到多少
console.log(“a1a2a3a4a5a6”.match(/a[0-9]/g));
console.log(“a1a2a3a4a5a6”.match(/a[a-zA-Z]/g));
// 不要數字 ^ 在中括號中 只能寫在第一位, 若是卸載非第一位 則是字符^
console.log(“a1a2a3a4a5agavaca6”.match(/a[^0-9]/g));
// OutPut (3)[‘ag’, ‘av’, ‘ac’]
\w => [a-zA-Z0-9_] 任意一個字符
\W => [^a-zA-Z0-9_] 除了數字字母下劃線以外的其他字符
\d => [0-9] 任意數字
\D => [^0-9] 任意非數字
\s => 空白字符
\S => 非空白字符
練習 匹配YYYY-MM-DD
\d\d\d\d-\d\d-\d\d ???
重復 {n};
console.log("aaaaabbb".match(/a{4}/g)); // 匹配4個次 console.log("aaaaabbb".match(/a{2}/g)); // 匹配4個次 console.log("aaaaabbb".match(/a{1}/g)); // 匹配4個次 console.log("aaaaabbb".match(/a{0}/g)); // 匹配4個次 console.log("acacacacacbbb".match(/ac{4}/g)); // 匹配4個次 console.log("acacacacacbbb".match(/(ac){4}/g)); // 匹配4個次 OUT{['aa', 'aa']2.重復.js:1 ['aaaa']2.重復.js:2 (2) ['aa', 'aa']2.重復.js:3 (5) ['a', 'a', 'a', 'a', 'a']2.重復.js:4 (9) ['', '', '', '', '', '', '', '', '']2.重復.js:5 null2.重復.js:6 ['acacacac'] }貪婪匹配 {最小重復次數, 最大重復次數} “?”表示 {} “*” 表示{0,} “+” {1,}
console.log("aaaaaasdasaaaaaaaaaaaa".match(/a{2,5}/g)); // (4) ['aaaaa', 'aaaaa', 'aaaaa', 'aa'] 優先匹配最大的 console.log("aaaaaasdasaaaabbaaaaaaaa".match(/a{2,5}b{2,5}/g)); // ['aaaabb'] 優先匹配最大的 console.log("aaaaaasdabsaabbaaaabbaaaaaa".match(/a{2,5}b{2,5}/g)); // ['aabb', 'aaaabb']優先匹配最大的 console.log("aaaaaasdasaabbbaababbbbaaaaaabbbbba".match(/a{2,5}b{2,5}/g)); // ['aabbb', 'aaaaabbbbb'] 優先匹配最大的console.log("afdsczvqadfafafafaaa".match(/a{1,}/g))// 表示匹配無窮個a\D+\d 表示 非數字起頭,但是后續字符串中至少由一位數字
.*[A-Z] .是通配符 *{0,} [a-z] 在整個字符串中必須有一個小寫字母
.*[A-Z] 表示真個字符串中必須包含一個大寫字母
總結
以上是生活随笔為你收集整理的正则基础学习1 这俩天补上正则全部内容,让你简单的学会正则,欢迎收藏当文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有道翻译官如何翻译手机网页(如何评价长沙
- 下一篇: 招才猫直聘如何更换公司