正規表示式常用

2021-08-31 09:55:42 字數 4849 閱讀 4767

正規表示式的介紹

(1)資料型別:

基本資料型別: number string boolean null undefined

複雜資料型別: array function object math date regexp正規表示式) string number boolean

(2)

regular expression 簡寫: regexp regex

正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。

(3)正則物件的test()方法.

語法: 正則物件.test(需要檢測/過濾的字串);

返回值布林型別.

如果 需要檢測/過濾的字串 滿足當前這個正則物件的過來規則,那麼就返回true,否則就返回false.

(4)如何建立正則物件?

4.1使用建構函式來建立.

var reg1 = new regexp(/男/);  //這個正則用來判斷你 需要檢測的字串裡面包含不包含男這個字.

var result = reg1.test('志強是女的嗎?是的');

console.log(result);

4.2使用正則字面量來建立. /內容/

var reg2 = /男|女/;

var result = reg2.test('志強是nan的嗎?是的');

console.log(result);

console.log(/男|女/.test('志強是男的嗎?是的'));

預定義類-就是事先給他賦予了一些含義的字元

console.log(/./.test("[^\n\r]"));//true 意思是含有\n\r 都是false

console.log(/\d/.test("[0-9]"));//true

自定義類

你用test檢測的字串裡面,有沒有包含d這個字母。如果有就是true.

console.log(/d/.test("123")); //false

console.log(/d/.test("123d")); //true

你用test檢測的字串裡面, 有沒有包含heima,,如果有就是true.

console.log(/heima/.test("hei")); //false
或和優先順序 | ()

用test檢測的字串裡面,如果有hei或者有ma都是true.

console.log(/hei|ma/.test("hei")); //true

console.log(/hei|ma/.test("ma")); //true

console.log(/hei|ma/.test("heima")); //true

用test檢測的字串裡面,如果有heia,或者hema,那麼就是true.

console.log(/he(i|m)a/.test("heima")); //false

console.log(/he(i|m)a/.test("heia")); //true

console.log(/he(i|m)a/.test("hema")); //true

console.log(/he(i|m)a/.test("heimaheima")); //false

console.log(/he(i|m)a/.test("hahahhahahema")); //true

簡單類

簡單類只代表乙個字元

如果用test檢測的字串中,出現中的字元任意乙個,就是true.

console.log(/[abc]/.test("a"));  //true

console.log(/[abc]/.test("b")); //true

console.log(/[abc]/i.test("dddddbdddd!!!!!!")); //true

負向類 [^ ]

注意:負向類是中括號中的小尖尖.

//如果用test檢測的字串中,有 除了中括號中的內容之外的任意乙個,出現一次或者一次以上,就是true

// console.log(/[^abc]/.test('a')); //false

範圍類

他是乙個簡單類,簡單類代表的是乙個字元,如果檢測的字串中,出現了中括號中的任何乙個,都是true

console.log(/[abc]/.test(「a」)); //true

自定義類黑範圍類結合

自定義類 - 檢測的字串裡面 至少要完整的出現一次,那麼就是true.

yaz ybz ycz

console.log(/y[abc]z/.test("yabcz")); //false

console.log(/y[abc]z/.test("yazcz")); //true

組合類

console.log(/[^0-5][^a-g]/.test("b4")); //true

console.log(/[^0-5][^a-g]/.test("6")); //false

負向類 [^ ] -----/^ / 邊界

^ 會匹配行或者字串的起始位置

console.log(/^\d/.test("aaabb123ccc")); //false
如果檢測的字串的起`始位置是數字就是true.

2, $ 會匹配行或字串的結尾位置

console.log(/ac$/.test("777ac")); //true
3,^$組合在一起,就表示嚴格匹配 只能出現一次 有且只有一次

console.log(/^男$/.test('男'));//true

console.log(/^男$/.test('男男'));//false 只能有一次

console.log(/^bc/.test("bcbcbc")); //true 沒有結尾不算嚴格匹配

console.log(/bc$/.test("bcbcbc")); //true 沒有開頭不算嚴格匹配

量詞

「*」 重複零次或更多 x>=0

「+」 重複一次或更多次 x>=1

「?」 重複零次或一次 x=(0||1)

console.log(/^colo*r$/.test("colr")); //true

console.log(/^colo*r$/.test("color")); //true

console.log(/^colo*r$/.test("coloor")); //true

console.log(/^colo+r$/.test("colr")); //false

console.log(/^colo+r$/.test("color")); //true

console.log(/^colo+r$/.test("coloor")); //true

console.log(/^colo?r$/.test("colr")); //true

console.log(/^colo?r$/.test("color")); //true

console.log(/^colo?r$/.test("coloor")); //false

量詞

n次 x=n

重複n次或更多 x>=n

重複出現的次數比n多但比m少 n<=x<=m

console.log(/^color$/.test("color"));//false         

console.log(/^color$/.test("coloor"));//true

console.log(/^color$/.test("color"));//false

console.log(/^color$/.test("coloor"));//true

console.log(/^color$/.test("colooor"));//true

console.log(/^color$/.test("coloor"));//true

console.log(/^color$/.test("colooor"));//true

僅作了解

分組提取

//提取email中的每一部分

var str = "[email protected],[email protected]";

var reg = /(\w+)@(\w+)\.(\w+)(\.\w+)?/g;

var array = str.match(reg);

//獲取分組的資料 ()是分組

console.log(regexp.$1);

console.log(regexp.$2);

console.log(regexp.$3);

console.log(regexp.$4);

正規表示式 常用正規表示式

一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...

正規表示式 常用正規表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 4 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 或者 1 3...

正規表示式 常用

規定一些特殊語法表示字元類 數量限定符和位置關係,然後用這些特殊語法和普通字元一起表示乙個模式,這就是正規表示式 regular expression egrep grep e,表示採用extended正規表示式語法。fgrep grep f,表示只搜尋固定字串而不搜尋正規表示式模式,不會按正規表示...