2022-01-05

正則表達式

// [A-Z] ? ?查找任何從大寫 A 到大寫 Z 的字符

? ? ? ? /* [a-zA-Z] 表示大小寫的26個英文字母 都能匹配 */

? ? ? ? /* [0-9] ? ?查找任何從 0 至 9 的數(shù)字 */

? ? ? ? /* /[0-9a-zA-Z]/ 表示26個大小寫英文字母和數(shù)字都匹配 */

? ? ? ? /* [] 只要有一個符合都返回true 例如下面*/

? ? ? ? // let reg = /[0-9]/;

? ? ? ? // console.log(reg.test('abc'))

? ? ? ? /* [abc] ? ?查找括號內(nèi)的任意一個字符 */

? ? ? ? /* ^[] 表示以什么開頭 ?*/

? ? ? ? /* []$ 表示以什么結(jié)尾 */

? ? ? ? /* + 表示匹配前面字符串一次或者多次 */

? ? ? ? /* 可以匹配純26個英文小寫的字母 ?*/

? ? ? ? // let reg = /^[a-z]+$/;

? ? ? ? // console.log(reg.test('abcccc'))

? ? ? ? /* 匹配一串字符 包括多個 英文字母 包括大小寫 和數(shù)字 ?*/

? ? ? ? // let reg = /^[a-zA-Z0-9]+$/;

? ? ? ? // console.log(reg.test('BASADasdf123123'))

/* {n,} 至少匹配n 次 ?/^[a-z]{2,}$/ ?*/

? ? ? ? /* 以[]內(nèi)任意一個字母(包括大小寫)或者數(shù)字開頭 */

? ? ? ? // {n,m} ? ?最少匹配 n 次且最多匹配 m 次 /^[a-z]{2,3}$/

? ? ? ? /* {n} ?匹配確定的 n 次 /^\d{2}$/ 要加限定字符,否則2次以上也為true */

// ? ? ? ? // ?匹配前面的子表達式零次或多次 /[a-z]*/ 字母出現(xiàn)與否都為true

// ? ? ? ? ? ? ?匹配前面的子表達式零次或一次/[a-z]?/字母出現(xiàn)0或1次都為true

// 正則有個特性只要匹配了一次都返回true,所以要加限定字符^$

/* [^abc] ? 查找除了括號內(nèi)的任意字符 */

? ? ? ? /* 寫在[]里面的^叫除了 */

? ? ? ? // let reg = /[^abc]/;

? ? ? ? // console.log(reg.test('dfgg'))

判斷是否符合正則

/* 正則對象校驗的兩個方法 */

? ? ? ? /* test 符合返回true 不符合返回false */

? ? ? ? /* exec 符合返回一個數(shù)組 不符合返回null*/

? ? ? ? let reg = /^[a-z]+$/

? ? ? ? console.log( reg.exec('abc') )

元字符

\w ? 匹配數(shù)字、字母、下劃線

\W ? 匹配非數(shù)字、字母、下劃線

?\d ? 匹配數(shù)字

?\D ? 匹配非數(shù)字

\s ? 匹配空白字符(空格 、換行\(zhòng)n 回車\r) 空字符串''不可以

\S ? 匹配非空白字符 (空格 、換行\(zhòng)n 回車\r 空字符串'' 4個返回false

?\n ? 匹配換行符 ?這里只匹配\n 不匹配\r

正則的定義

/* i 執(zhí)行對大小寫不敏感的匹配 */

? ? ? ? // let reg = /[a-z]/i;

? ? ? ? // console.log( reg.test('C') );

? ? ? ? // let reg = new RegExp(/[a-z]/,'i');

? ? ? ? // console.log( reg.test('C') );

? ? ? ? // g 執(zhí)行全局匹配(查找所有匹配而非在找到第一個匹配后停止)

? ? ? ? let str = 'abc1a2c3b';

? ? ? ? console.log( str.match(/a/g) )


? ? ? ? /* [a-z] ? ?查找任何從小寫 a 到小寫 z 的字符 */

? ? ? ? /* 構(gòu)造函數(shù)的方式 */

? ? ? ? /* reg是構(gòu)造函數(shù)RegExp new出來的實例化對象 */

? ? ? ? // let reg = new RegExp(/[a-z]/);

? ? ? ?/* 正則的方法 test() 可以判斷你輸入的字符串是否符合要求

? ? ? ?符合就返回true 不符合就返回false*/

? ? ? ? /* 用字面量的方式來表示正則 */

? ? ? ? // let reg = /[a-z]/;

? ? ? ? // console.log( reg.test('C') );

String驗證正則的方式

// let str = '123abc';

? ? ? ? /* 返回匹配到的第一個字符串的下標(biāo),否則返回-1 */

? ? ? /* ? console.log( str.search(/[a-z]/) ) */ /* ==> 3 */

? ? // ? ?如果沒有找到任何匹配的文本,返回 null

? ? // ? ?否則,它將返回一個數(shù)組(依賴于是否具有全局標(biāo)志 g)

? ? ? ? // let str = 'cc123ab'

? ? ? ? /* console.log( str.match(/[0-9]/) ) ?*/ /*返回 ['1', index: 3, input: 'abc123qwe', groups: undefined] */

? ? ? ?/* ?console.log( str.match(/[0-9]/g) ) */ /* ['1', '2', '3'] ?*/

? ? ? ?/* 返回一個新的字符串 */

? ? ? ? // let str = 'abc123qwe'

? ? ? ? // ? ?let newStr = str.replace('bc','oo');

? ? ? ? // let newStr = str.replace(/[0-9]/,'oo'); =>abcoo23qwe

? ? ? ? // let newStr = str.replace(/[0-9]/g,'oo'); =>abcooooooqwe

? ? ? ? // console.log(newStr);

? ? ? ? // let str = 'a1b2c3d4e5f'

? ? ? ? // // console.log( str.split('-') ) /* 匹配不到會把整個字符串當(dāng)成數(shù)組返回 */

? ? ? ? // /* 以數(shù)字為分隔符來分割 => [a,b,c,d] */

? ? ? ? /* split的第二個參數(shù)表示 分割成幾個數(shù)組的意思 */

? ? ? ? // console.log( str.split(/[0-9]/,5) )

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容