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...