•測試字串的某個模式。例如,可以對乙個輸入字串進行測試,看在該字串是否存在乙個**號碼模式或乙個信用卡號碼模式。這稱為資料有效性驗證
•替換文字。可以在文件中使用乙個正規表示式來標識特定文字,然後可以全部將其刪除,或者替換為別的文字
•根據模式匹配從字串中提取乙個子字串。可以用來在文字或輸入欄位中查詢特定文字
修飾符描述
i 執行對大小寫不敏感的匹配。
g 執行全域性匹配(查詢所有匹配而非在找到第乙個匹配後停止)。
m執行多行匹配。
其他備忘見
我們來著重分析js的正規表示式的一些方法以及使用
str = "certainly!he loves her!";alert(re.test(str));//true,只要包含he(he)就符合,如果要只是he或he,不能有其它字元,則可使用^和$
/*regexpobject.exec(string)
返回乙個陣列,其中存放匹配的結果。如果未找到匹配,則返回值為 null。
*/
. var sometext = "web2.0 .net2.0";
var pattern = /(\w+)(\d)\.(\d)/;
var outcome_exec = pattern.exec(sometext);
得到的outcome_exec值為 [web2.0, web, 2, 0]. 這是乙個陣列. 如果在pattern這個表示式後面加上全域性g. 得到的結果還是[web2.0, web, 2, 0]. 可見exec
1. 永遠匹配一次如果正規表示式沒有全域性變數, 那麼string.match得到的結果是和exec一樣的. 如果有了g, match就不會返回分組捕獲的結果. 比如2. 返回的陣列是第一次匹配的結果和分組匹配的結果合集
var sometext = "web2.0 .net2.0";var pattern = /(\w+)(\d)\.(\d)/;var outcome_matc = sometext.match(pattern); //類似陣列的返回值 [web2.0,web,2,0]var pattern2 = /(\w+)(\d)\.(\d)/g;var outcome_matc2 = sometext.match(pattern2); //類似陣列的返回值 [web2.0,net2.0]
1. 如果沒有全域性變數, 那麼match和exec一樣2. 有全域性變數, match只返回正則表達匹配的結果集, 而不包含任何分組捕獲的結果.
ps: \w的用法, \w相當於[0-9a-za-z], 可是在上面的表示式中(\w+)只匹配web, 卻不匹配web2.
這是因為如果\w後面跟著\d, 那麼\w只相當於[a-za-z]
search, 返回匹配的表示式的開始索引. 全域性變數無效. 沒找到返回-1str = "my age is 18.golden age!";//年齡不是一定的,我們用indexof不能查詢它的位置re = /\d+/;alert(str.search(re));//返回查詢到的字串開始下標10//下面的**雖然不出錯,但g標誌是多餘的re=/\d+/g;alert(str.search(re));//仍然是10其他
str ="some some \tsome\t\f";re = /\s+/;alert(str.replace(re,"#"));//但這樣只會將第一次出現的一堆空白字元替換掉//因為乙個正規表示式只能進行一次匹配,\s+匹配了第乙個空格後就退出了re = /\s+/g;//g,全域性標誌,將使正規表示式匹配整個字串alert(str.replace(re,"@"));//some@some@some@//另乙個與之相似的是splitvar str = "a-bd-c";var arr = str.split("-");//返回["a","bd","c"]//如果str是使用者輸入的,他可能輸入a-bd-c也可能輸入a bd c或a_bd_c,但不會是abdc(這樣就說他輸錯了)str = "a_db-c";//使用者以他喜歡的方式加分隔符sre=/[^a-z]/i;//前面我們說^表示字元開始,但在裡它表示乙個負字符集//匹配任何不在指定範圍內的任意字元,這裡將匹配除字母處的所有字元arr = str.split(re);//仍返回["a","bd","c"];replace的複雜應用//計算某個字串中9出現過的次數var str="adf9df9df9",//那個文字檔案中的字串;re=/9/gi,//匹配9counter=0;//計數器str.replace(re,function () );//最後str 變成 adf#df#df#"function f2c(s) ));}document.write(f2c("water freezes at 32f and boils at 212f."));//water freezes at 0c and boils at 100c.ps: replace方法中的第二個引數是函式的時候, 函式裡有$0,$1…..$n這樣的引數, 代表正規表示式的子捕獲.replace不更新regexp全域性屬性.
正規表示式備忘
1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫做長度 的符號 包括...
JS 正規表示式公式(全)
驗證數字的正規表示式集 驗證數字 0 9 驗證n位的數字 d 驗證至少n位數字 d 驗證m n位的數字 d 驗證零和非零開頭的數字 0 1 9 0 9 驗證有兩位小數的正實數 0 9 0 9 驗證有1 3位小數的正實數 0 9 0 9 驗證非零的正整數 1 9 0 9 驗證非零的負整數 1 9 0 ...
正規表示式(全)
之前學習過正規表示式,沒有系統的總結過,今天尋找一篇分享出來。網域名稱 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 4 5 6 7 8 ...