正規表示式

2021-08-04 15:44:44 字數 4294 閱讀 2981

正規表示式,用於校驗一段字元是否符合他的規定。

如郵箱必須是一段數字或字母或下劃線加上@字元加上(.)加上一段字元。

如果一段郵箱沒有@或沒有一些必要的字段,正則可以檢查出來他的正確性。

正則,發現錯誤的**。

常用正則

郵箱

/^([\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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...