淺談正則的基礎

Besmall發表於2017-08-29

正則表達是的基礎

1、正規表示式的介紹

正規表示式為Regular Expression

正規表示式是用來對字串中的資訊實現查詢、替換和提取的操作。

2、正規表示式的實踐

【查詢案例】

//查詢所有的數字
var str = "1 dsd  hhs67 89ud d 555 222 sshdsahd880 hhd88 99";
var res = str.match(/d+/g);
console.log(res);

列印結果
(8) ["1", "67", "89", "555", "222", "880", "88", "99"]

【替換案例】

//替換所有的is為IS
var str1 = "my name is abcd . is no what is you name?"
var res1 = str1.replace(/is/g , "IS");
console.log(res1);
列印結果
my name IS abcd . IS no what IS you name?

3、正規表示式的定義(正規表示式示例的建立)

2種定義方式

1、// 自變數定義

【案例】

//找到匹配abcd的字元
var str = "my name is Abcd . is no what is you name?";
var res = /abcd/i;
console.log(res.test(str));
列印結果為true
2、new RexExp();new一個正規表示式

【案例】

//找到匹配abcd的字元
var str = "my name is Abcd . is no what is you name?";
var res = new RegExp("abcd","i");
console.log(res.test(str));
列印結果為true

4、正規表示式的修飾符(flag)

i—-ignore 忽略大小寫
g—-global 全域性全部
m—-multiline 多行

5、正規表示式的字元

普通字元

a-z Z-A 0-9

特殊字元

() [] {} ? * + ^ $ |

預定義字元

n d w s t b……

6、元字元[] (元類字元)

代表一類字元

【案例1】

//替換多有的jgf
var str = "aasj jgjgdk ghghr lfjfhd";
var res = str.replace(/[jgf]/g,"WJ");
console.log(res);
列印結果
aasWJ WJWJWJWJdk WJhWJhr lWJWJWJhd

【案例2】

//找到以a開頭以c結尾中間是sdf的字元
var str1 = "abc adc asc afc ahc atc adc";
var res = str1.match(/a[sdf]c/g);
console.log(res);
列印結果
(4) ["adc", "asc", "afc", "adc"]

7、量詞

{} 用來修飾字元的

8、貪婪模式

貪婪模式是什麼,我們怎麼解決貪婪模式
正則匹配儘可能給我們匹配跟多的,這就就出現了貪婪模式
我們解決貪婪模式的方式就是反貪婪模式,在其後面加?即可

9、分支 分組和應用

分支用|表示
分組用()表示

10、邊界問題 ^$ b

整個字串邊界 ^ $
單詞的邊界 b B

11、前瞻

【案例】

正向前瞻reg(?=reg1)
//返回91前面的shitu
var str = "shitu 91 nihao!";
var reg = str.match(/shitu (?=91)/g);
console.log(reg);
列印結果["shitu "]
反向前瞻reg(?!reg1)
//找不到任何
var str = "shitu 91 nihao!";
var reg3 = str.match(/shitu (?!91)/g);
console.log(reg3);
列印結果null
//返回shitu 91  忽略分組
var str = "shitu 91 nihao!";
var reg1 = str.match(/shitu (?:91)/);
console.log(reg1);
列印結果
["shitu 91", index: 0, input: "shitu 91 nihao!"]
//返回shitu 91 91
var str = "shitu 91 nihao!";
var reg2 = str.match(/shitu (91)/);
console.log(reg2);
列印結果
(2) ["shitu 91", "91", index: 0, input: "shitu 91 nihao!"]

12、正則物件的屬性

iastIndex
flags
global
ignoreCase
multiline
source
喜歡的朋友可以點贊和收藏奧

相關文章