文星家: ? * + 即 01次、0多次、1多次
^ 匹配起始端
$ 匹配結尾處
. 匹配任意單個字元,但換行符除外
(x) 匹配x並記住x,前提是匹配
(?:x) 匹配x但不記住x
x(?=y) 匹配x,僅當後面緊跟著y時。如果符合匹配,則只有x會被記住,y不會被記住。
x(?!y) 匹配x,僅當後面不緊跟著y時。如果符合匹配,則只有x會被記住,y不會被記住。
x|y 匹配x或y。注意如果x和y都匹配上了,那麼只記住x。
匹配前乙個字元的n次出現
匹配前乙個字元的至少n次出現
匹配前乙個字元的至少n次最多m次的出現
[xyz] xyz表示乙個字串,該模式表示匹配中的乙個字元,形式上[xyz]等同於[x-z]
[^xyz] 該模式表示匹配非中的乙個字元,形式上[^xyz]等同於[^x-z]
[\b] 匹配退格鍵
\b 匹配乙個詞的邊界符,例如空格和換行符等等,當然匹配換行符時,表示式應該附加引數m
var regx=/\bc./;
var rs=regx.exec(「beijing is a beautiful city」);
結果:匹配成功,rs的值為:,注意c前邊的空格不會匹配到結果中,即是不正確的。
\b 代表乙個非單詞邊界。
\cx 匹配乙個控制字元
\d 匹配乙個數字字元,等同於[0-9]
\d 匹配乙個非數字字元,等同於[^0-9]
\f 匹配乙個換頁符
\n 匹配乙個換行符。因為是換行符,所以在表示式中要加入m引數
\r 匹配乙個回車符
\s 匹配乙個空格符,等同於[ \f\n\r\t\v\u00a0\u2028\u2029]
\s 匹配乙個非空格符,等同於[ ^\f\n\r\t\v\u00a0\u2028\u2029]
\t 匹配乙個tab
\v 匹配乙個豎向的tab
\w 匹配乙個數字、_或字母表字元,即[a-za-z0-9_ ]
\w 匹配乙個非數字、_或字母表字元,即[^a-za-z0-9_ ]
\n 注意不是\n,這裡n是乙個正整數,表示匹配第n個()中的字元
\0 匹配乙個nul字元。
\xhh 匹配乙個由兩位16進製制數字所表達的字元。
\uhhhh 匹配乙個由四位16進製制數字所表達的字元。
g:代表可以進行全域性匹配。
i:代表不區分大小寫匹配。
m:代表可以進行多行匹配。
1>exec(str),返回str中與表示式相匹配的第乙個字串,而且以陣列的形式表現,當然如果表示式中含有捕捉用的小括號,則返回的陣列中也可能含有()中的匹配字串
2>test(str),判斷字串str是否匹配表示式,返回乙個布林值
1>match(expr),返回與expr相匹配的乙個字串陣列,如果沒有加引數g,則返回第乙個匹配,加入引數g則返回所有的匹配
2>search(expr),返回字串中與expr相匹配的第乙個匹配的index值
3>replace(expr,str),將字串中匹配expr的部分替換為str。另外在replace方法中,str中可以含有一種變數符號$,格式為$n,代表匹配中被記住的第n的匹配字串(注意小括號可以記憶匹配)。
對於replace(expr,str)方法還要特別注意一點,如果expr是乙個表示式物件則會進行全域性替換(此時表示式必須附加引數g,否則也只是替換第乙個匹配),如果expr是乙個字串物件,則只會替換第乙個匹配的部分
4>split(expr),將字串以匹配expr的部分做分割,返回乙個陣列,而且表示式是否附加引數g都沒有關係,結果是一樣的
1>lastindex,返回開始下乙個匹配的位置,注意必須是全域性匹配(表示式中帶有g引數)時,lastindex才會有不斷返回下乙個匹配值,否則該值為總是返回第乙個下乙個匹配位置
2>source,返回表示式字串自身
1>index,返回當前匹配的位置
var regx=/user\d/;
var rs=regx.exec(「sdsfuser1dfsfuser2」);
var index1=rs.index;
2>input,用於匹配的字串。例如:
var regx=/user\d/;
var rs=regx.exec(「sdsfuser1dfsfuser2」);
var input=rs.input;
input的值為sdsfuser1dfsfuser2。
3>[0],返回匹配結果中的第乙個匹配值,對於match而言可能返回乙個多值的數字,則除了[0]外,還可以取[1]、[2]等等。例如:
var regx=/user\d/;
var rs=regx.exec(「sdsfuser1dfsfuser2」);
var value1=rs[0];
rs=regx.exec(「sdsfuser1dfsfuser2」);
var value2=rs[0];
value1的值為user1,value2的值為user2
5,實際應用
1)實際應用一
描述:有一表單,其中有乙個「使用者名稱」input域
要求:漢字,而且不能少於2個漢字,不能多於4個漢字。
實現:2)實際應用二
描述:給定乙個含有html標記的字串,要求將其中的html標記去掉。
實現:
正則學習筆記
最近做東西頻繁的用到正則這一塊,所以自己又翻了翻以前的筆記和檢視了正則三十分鐘入門教程。重新整理了筆記,希望在以後的學習過程中便於查閱 注 以下例子非本人原創 什麼是正規表示式 在編寫處理字串的程式或網頁時,經常會有查詢符合某些複雜規則的字串的需要。正規表示式就是用於描述這些規則的工具。換句話說,正...
正則學習筆記
字元匹配 區間範圍框 列舉值 a z0 9a z 分枝條件或 特殊轉義符 取消轉義 w a za z0 9 r n 換行符匹配 u4e00 u9fa5 漢字 s s 任意字元 懶惰匹配 若發現匹配立即返回,懶惰搜尋 例 a.b exec abcdedfb abcdedfb a.b exec abcd...
正則學習筆記2
問題 我原來寫的標籤中沒有加上,現在我想在寫好的頁面中用正規表示式對它們進行替換。舉例如下 其中的 為轉變標誌 1.2.test test 3.test test1 test2 test3 test4 test test1 test2 test3 test4 var str test test1 t...