一:什麼是正規表示式
正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規 則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。
二:建立正規表示式
1.
使用new運算子建立
var box =regexp('box'); //第乙個引數字串
var box =regexp('box','gi'); //第二個引數可選模式修飾符
採用字面量方式
var box =/box/;
var box =/box/gi;
模式修飾符的可選引數:
引數含義
i忽略大小寫
g全域性匹配
m多行匹配
2.測試正規表示式
regexp物件的方法:
方法功能
test
在字串中測試模式匹配,返回true或false
exec
在字串中執行匹配搜尋,返回結果陣列
使用new運算子的test方法例項:
var pattern =new regexp('box','i'); //建立正則模式,不區分大小寫
var str='this is a box!';
alert(pattern.test(str)); //返回true
使用一條語句實現正則匹配:
alert(/box/i.test('this is a box!'));
使用exec返回匹配陣列:
var pattern =/box/i;
var str='this is a box!';
alert(pattern.exec(str)); //匹配了返回陣列否則返回null
3.使用字串中的正則表達試方法
string物件中的正規表示式方法
方法含義
match(pattern)
返回pattern中的子串或null
replace(pattern,replacement)
用replacement替換pattern
search(pattern)
返回字串中pattern開始位置
split(pattern)
返回字串按指定拆分的陣列
使用match方法獲取匹配陣列
var pattern =/box/i;
var str='this is a box!, this is a box too';
alert(str.match(pattern));
使用search來查詢匹配資料
var pattern =/box/i;
var str='this is a box!, this is a box too';
alert(str.search(pattern));
使用replace替換匹配到的資料
var pattern =/box/ig;
var str='this is a box!, this is a box too';
alert(str.replace(pattern,'pox'));
使用split拆分成字串陣列
var pattern =/box/ig;
var str='this is a box!, this is a box too';
alert(str.split(pattern));
4.正規表示式物件的靜態屬性
屬性短名
含義input
$_當前被匹配的字串
lastmatch
$&最後乙個匹配字串
lastparen
$+最後一對圓括號內的匹配子串
leftcontext
$ 『最後一次匹配前的子串
multiline
$*用於指定是否所有的表示式 都用於多行的布林值
rightcontext
$』在上次匹配之後的字串
5.正規表示式物件的例項屬性
屬性含義
global
boolen值,表示g是否已設定
ignorecase
boolen值,表示i是否已設定
lastindex
整數,代表下次匹配位置將從**字元位置開始
multiline
boolen值,表示m是否已設定
source
正規表示式的源字串形式
三:獲取控制
正規表示式的元字元是包含特殊含義的字元。他們有一些特殊功能,可以控制匹配模式的方式,反斜槓後的元字元將失去其特殊含義。
字元類:單個字元和數字
元字元/元符號
匹配情況
.匹配除換行符外的任意字元
【a-z0-9】
匹配括號字符集中的任意字元
【^a-z0-9】
匹配任意不在括號字符集中的字元
\d匹配數字
\d匹配非數字,即【^0-9】
\w匹配字母數字和斜槓
\w匹配非字母數字和斜槓
字元類:空白字元
元字元/元符號
匹配情況
\0匹配null字元
\b匹配空格字元
\f匹配進紙字元
\n匹配換行符
\r匹配回車字元
\t匹配製表符
\s匹配空白字元,空格,製表符和換行符
\s匹配非空白字元
字元類:錨字元
元字元/元符號匹配^
行首匹配
$行尾匹配
\a只匹配字串的開始處
\b匹配單詞邊界,詞在【】內時無效
\b匹配非單詞邊界
\g匹配當前搜尋的開始位置
\z匹配字串結束處或行尾
\z只匹配字串結束處
字元類:重複字元
元字元/元符號
匹配情況
x?匹配0個或乙個x
x*匹配0個或任意多個x
x+匹配至少乙個x
(xyz)+
匹配至少乙個(xyz)
x匹配最少m個,最多n個x
字元類:替代字元
元字元/元符號
匹配情況
this\where\logo
匹配 this,where,logo中的任意乙個
字元類:記錄字元
元字元/元符號
匹配情況
(string)
用於反向引用的分組
\1或$1
匹配第乙個分組中的內容
\2或$2
匹配第乙個分組中的內容
\3或$3
匹配第乙個分組中的內容
四:常用的正則
var pattern=/^[1-9][0-9]$/; //行首行尾嚴格匹配
var str='this is 240000';
alert(pattern.test(str));
2.檢查檔案壓縮包
var pattern=/[\w]+\.zip|gz|rar/; // \為轉義字元, 把\.轉義成實際意義上的.
var str='678.zip';
alert(pattern.test(str));
3.刪除多餘空格
var pattern=/\s/g;
var str='11 22 33 44 55';
alert(str.replace(pattern,''));
4.刪除首尾空格
var pattern=/^\s+/;
var str=' goo gle ';
var result=str.replace(pattern,'');
pattern=/\s+$/;
result=result.replace(pattern,'');
alert(result);
5.簡單的電子郵件驗證
var pattern=/^([\w\_\.]+)@([\w\_]+)\.[a-za-z]$/;
var str='[email protected]';
alert(pattern.test(str));
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...