JavaScript 正規表示式

2021-08-16 20:19:09 字數 1840 閱讀 3949

js通過內建物件regexp支援正規表示式

例項化regexp物件的兩種

1.字面量

var reg = /\bis\b/g;

2.建構函式

var reg = new regexp('\\bis\\b','g');

修飾符g:global,全文搜尋,不新增,搜到第乙個匹配就停止

i: ignore case,忽略大小寫,正則預設大小寫敏感

m: multiple lines 多行搜尋

正規表示式由兩種基本字元型別組成

1.原義文字字元:代表它原來含義的字元 例如:abc、123

2.元字元:在正規表示式中有特殊意義的非字母字元 例如:\b表示匹配單詞邊界,而非\b

在正規表示式中具體特殊含義的字元:* + ? $ ^ . \ () {}

元字元:

\t:水平製表符;

\v:垂直製表符;

\n:換行符;

\r:回車符;

\0:空字元;

\f:換頁符;

\cx:與x對應的控制字元

元字元中的字元類

一般情況下正規表示式乙個字元對應字串乙個字元

表示式 ab\t 的含義是: 乙個字母a乙個字母b加乙個水平製表符 

可以使用元字元來構建乙個簡單的類,所謂類是指符合某些特徵的物件,乙個泛指,而不是特指某個字元

表示式[abc]:把字元 a 或 b 或 c 歸為一類,表示式可以匹配這類的字元,即匹配abc中的乙個

'a1b2c3d4'.replace(/[abc]/g,'字元');

"字元1字元2字元3d4"

字元類取反

使用元字元 ^ 建立 反向類/負向類,反向類的意思是:不屬於某類的內容

表示式 [^abc] 表示 不是字元a或b或c 的內容

'a1b2c3d4'.replace(/[^abc]/g,'字元');

"a字元b字元c字元字元字元"

範圍類 【a-z】,閉區間,裡面可以連寫【a-za-z】

`2017-03-19`.replace(/[0-9-]/, `x`);

"x017-03-19"

`2017-03-19`.replace(/[0-9-]/g, `x`);

"*********x"

預定義類

.  等價於 [^\r\n] 表示除了回車符和換行符之外的所有的字元

\d 等價於 [0-9] 數字字元 d:digit

\s 等價於 [\t\n\x0b\f\r] 空白符 s:space

\w 等價於 [a-za-z_0-9] 單詞字元(字母、數字下劃線) w:word

大寫的表示取反

^ 以***開始

$ 以***結束

\b 單詞邊界

m 多行

量詞:?出現0次或1次

+ 出現1次或多次

* 出現0次或多次

出現n次

出現n到m次,

至少出現n次,

貪婪模式:正規表示式在匹配時,盡可能多的匹配,直到匹配失敗

非貪婪模式:正規表示式盡可能少的匹配,即一旦成功匹配就不再繼續匹配

做法:在量詞後加上 ? 即可

'123456789'.replace(/\d?/g'a')

"aa"

'123456'.replace(/\d/g,'a')

"a6"

分組:(內容)

byr(on|ca)sper 或

反向引用:

2015-12-25 == 12/25/2015

"2015-12-25".replace(/(\d)-(\d)-(\d)/g,"$2$3$1")

(?:byron).(ok)  忽略分組

Javascript正規表示式

這段時間學習js,正好遇到了正規表示式。下面通過使用例項介紹一下正規表示式。正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。在很多文字...

JavaScript 正規表示式

一 什麼是正規表示式 正規表示式 regular expression 是乙個描述字元模式的物件。測試正規表示式 regexp 物件包含兩個方法 test 和exec 功能基本相似,用於測試字串匹配。test 方法在字串中查詢是否存在指定的正規表示式並返回布林值,如果存在則返回true,不存 在則返...

javascript 正規表示式

正規表示式 regexp物件 主要用於表單驗證 1 建立正規表示式 1 var ret pattern pattern是內容,可以是正規表示式的內容,可以是字元或是其他的內容 2 var rag new regexp pattern 括號內可以是雙引號或者單引號 2 正規表示式的exec方法 reg...