正規表示式常用知識點以及一些小練習Reg

2021-09-02 22:56:00 字數 3423 閱讀 5172

# 正規表示式

正規表示式就是乙個表示式,用來查詢乙個有指定【特點】的表示式,規則匹配的。

# 正規表示式定義的方式

var reg = /abc/;

var reg = new regexp('abc');

推薦使用字面量的方式,如同陣列和物件一樣,推薦使用字面量的建立方式

#  正規表示式使用方法

reg.test(str);

str.match(reg);

# 特殊屬性  i/g/m

g代表的是global全域性匹配

i代表ignorecase忽略大小寫,

m代表multiline多行匹配,

# 特殊字元

具有特殊含義的字元。

\   轉義字元

|   或

## 方括號  

[abc]  查詢方括號內的任意乙個字元

[^abc]   查詢任何不在方括號內的字元

[0-9]  查詢0-9之間的數字

[a-z]  查詢任何小寫字母

[a-z]  查詢任何大寫字母

[a-z]  查詢任何字母

(red|blue|green)  查詢指定字串(子表示式)

## 元字元

.       查詢單個字元,除了換行和行結束符。

\w      查詢單詞字元

\w      查詢非單詞字元

\d      查詢數字

\d      查詢非數字

\s      查詢空白字元

\s      查詢非空白字元

\b      查詢單詞邊界

\b      查詢非單詞邊界

\n      查詢換行符

\f      查詢換頁符

\r      查詢回車符

\t      查詢製表符

\v      查詢垂直製表符

\u***   查詢以十六位進製數***x規定的unicode字元

## 量詞

以下均遵循貪婪匹配:

n+      匹配任何包含至少乙個n的字元

n*      匹配任何包含0個或多個n的字元

n?      匹配任何0個或乙個n的字元

n    匹配x個n的序列字串

n  匹配x至y個n的序列字串

n$      匹配以n結尾的字串

^n      匹配任何以n開頭的字串

?=n     匹配任何後面緊接著指定字串n的字串

?!n     匹配任何其後沒有緊接著指定字串n的字串

非貪婪匹配:

n+?    n*? ...

## 補充

(?:n)   匹配時子表示式中沒有這一項(不補獲分組)

# regexp物件屬性

global      檢視regexp物件是否具有g標誌

ignorecase  檢視regexp物件是否具有i標誌

multiline   檢視regexp物件是否具有m標誌

source      檢視正規表示式源文字

lastindex   乙個整數標誌開始下一次匹配的字元位置(一般與exec一起使用)

# regexp物件方法

compile    編譯正規表示式。 (就是改變這個正規表示式)

exec       檢索字串中指定的值。返回找到的值,並確定其位置。

test        檢索字串中指定的值。返回 true 或 false。

# 字串方法

search          檢索正規表示式相匹配的值

match           查詢所有符合正則匹配條件的結果

replace         替換與正規表示式匹配的字串

split           把字串分割成陣列(注: 用字表示式分割的話會保留子表示式)

// 正規表示式實現aabb的形式變成bbaa

// var str = 'aabbccdd';

// var reg = /(\w)\1(\w)\2/g;

// var str1 = str.replace(reg, function($, $1,$2) )+$)/g;

// str.replace(reg, '.');

// 字串去重 aaaaaaaaaaaaaaaaaaaaaabbbbbbbbcccccccccc變成abc

// var str = 'aaaaaaaaaaaaaaaaaaaaaabbbbbbbbcccccccccc';

// var reg = /(\w)\1*(\w)\2*(\w)\3*/g;

// str.replace(reg, function($, $1, $2, $3)); //"abc"

// 把the-first-name轉換成小駝峰式thefirstname

// var str = 'the-first-name';

// var reg =/-(\w)/g;

// str.replace(reg, function($, $1) ) //thefirstname

// 匹配結尾的數字

// var str = 'dkfdj1232';

// var reg = /\d$/g;

// str.match(reg); //["2"]

// 統一空格數

// var str = ' fkjdf ';

// var reg = /\s+/g;

// str.replace(reg, ' ');//" fkjdf "

// 判斷字串是不是由數字構成

// var str = 'fdjfd214234234';

// var reg = /(\d*?:[a-za-z])/g;

// reg.test(str);// false

// 刪除字串中的空格

//刪除前後空格

// var str = ' d kdfjd dfjdkf ';

// var reg = /(^\s*)|(\s*)$/g;

// str.replace(reg, '');//"d kdfjd dfjdkf"

//刪除所有空格

// var reg = /(\s*)/g;

// str.replace(reg, '');//"dkdfjddfjdkf"

// 身份證號匹配

// var str = '12345678976543879x';

// var reg = /(^\d$)|(^\d$)|(^\d(\d|x|x)$)/; //不需要全域性匹配

// reg.test(str);

//郵箱位址驗證

var str = '[email protected]';

var reg = /^[0-9a-za-z_-]+@[0-9a-za-z_-]+(\.[0-9a-za-z_-]+)+$/;

reg.test(str);

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

一 校驗數字的表示式 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...

正規表示式常用

正規表示式的介紹 1 資料型別 基本資料型別 number string boolean null undefined 複雜資料型別 array function object math date regexp正規表示式 string number boolean 2 regular express...