正規表示式,用於校驗一段字元是否符合他的規定。
如郵箱必須是一段數字或字母或下劃線加上@字元加上(.)加上一段字元。
如果一段郵箱沒有@或沒有一些必要的字段,正則可以檢查出來他的正確性。
正則,發現錯誤的**。
常用正則
郵箱
/^([\w\.\-]+)@([\w\.\-])\.([a-z]$)/
/[1-9][0-9]/
正則的建立
開頭結尾用/,可以在最後面加上模式修飾符
var reg = /earth/;
var reg = /earth/img;
new運算子建立
var reg = new regexp('earth');
var reg = new regexp('earth','img');
模式修飾符
i:忽略大小寫匹配
g:全域性匹配
m:多行匹配
正則的寫法
var reg = /earth/;
var str ="wow earth!!"
alert(reg.test(str));
結果:true
簡寫alert(/earth/.test('wow earth!!'));
結果:true
regexp物件
判斷字段是否能匹配
test
alert(/earth/.test('wow earth!!'));
結果:true
返回第一次匹配到的值,否則返回null
exec
alert(/earth/.exec('wow earth!!'));
結果:earth
結果:null
string中正規表示式方法
注:之前的是規則在前,字元在後,現在是反之
多次匹配到的返回為乙個陣列
match
alert('wow earth! earth!!'.match(/earth/g));
結果:earth,earth
alert('wow earth! earth!!'.match(/earth/g).length);
結果:2
返回第一次匹配的位置
search
alert('wow earth! earth!!'.search(/earth/g));
結果:4
替換匹配到的字元
replace
以匹配到的為分隔符,拆分成字串陣列
split
alert('wow earth! earth!!'.split(/earth/));
結果:wow ,! ,!!
regexp物件
檢視上一次匹配的資訊
var reg = /ear(t)h/;
var str = 'wow earth! earth!!';
reg.test(str);// 非簡寫
執行之後
alert(regexp.input);//顯示匹配的字段
結果:wow earth! earth!!
alert(regexp.leftcontext);//第一次匹配到的字元的前面
結果:wow
alert(regexp.rightcontext);//第一次匹配到的字元後面
結果:! earth!!
alert(regexp.lastmatch);//第乙個匹配字元,有人說是最後乙個
結果:earth
alert(regexp.lastparen);//第乙個括弧匹配字元,有人說是最後乙個
結果:t
alert(regexp.multiline);//是否用於多行
結果:undefined
regexp物件
檢視建立好的正則物件的屬性
var reg = /earth/img;
alert(reg.global);//是否全域性
結果:true
alert(reg.ignorecase);//是否大小寫
結果:true
alert(reg.multiline);//是否多行匹配
結果:true
alert(reg.lastindex);//下次匹配的位置
結果:0
alert(reg.source);//表示式字元
結果:earth
元字元有特殊含義的字元,用於規定匹配規則
以下結果全為true
點號,表示乙個任意字元
alert(/e...h/.test('wow earth! earth!!'));
^,表示不能出現的字元
alert(/[^z]/.test('wow earth! earth!!'));
[a-z],表示字母a到字母z的任意大小寫的乙個字母,如果用只要大寫或小寫可以[a-z]或[a-z]
alert(/[a-z]sdf/.test('wow earth! earth!!'));
小寫b,表示任意數字,和[0-9]一樣
alert(/wow\b/.test('wow9 earth! earth!!'));
大寫b,表示不可為任意數字,和[^0-9]一樣
alert(/wow\b/.test('wow earth! earth!!'));
小寫w,表示任意數字字母和下劃線,和[0-9a-z_]一樣
alert(/wow\w/.test('wow9 earth! earth!!'));
大寫w,表示不可為任意數字字母和下劃線,和[^0-9a-z_]一樣
alert(/wow\w/.test('wow earth! earth!!'));
?,匹配0個或乙個字元,沒有或有乙個
alert(/(w)?.test('wow earth! earth!!'));
*,匹配0個或多個,沒有或有很多
alert(/g*\w/.test('wow earth! earth!!'));
+,匹配乙個字元,有乙個
alert(/(wow)+/.test('wow earth! earth!!'));
,匹配最少n個,最多m個字元
alert(/(earth)/.test('wow earth! earth!!'));
a|b|c,匹配a或b或c
其他元字元
^,行首匹配
$,行尾匹配
\0,匹配null字元
\b,匹配空格字元
\f,匹配進紙字元,這是啥?
\n,匹配換行字元
\r,匹配回車字元
\t,匹配製表字元
\s,匹配空白、空格、換行、製表字元
\s,匹配非空白字元
\a,只匹配字元開始處
\b,匹配單詞邊界,注意在[ ]裡面含義不一樣
\b,匹配非單詞邊界
\g,匹配當前搜尋的開始位置
\z,匹配字串結束處或尾行
\z,只匹配結束處
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 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 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...