+ 表示可以1次或多次
* 表示0或1,多次
? 0或1次
\cx x爲a-z,\cM :匹配control-M或換行
\f 換頁符
\n 換行符
\r 回車
\t 製表符
\v 垂直製表符
\s 空白符 = [\f\n\r\v]
\S 非空白符
$ 結尾位置定位
() 子表達式
. 匹配除了\n以外的所有
[ 中括號表達式的開始
\ 下一個是特殊符號
^ 匹配字符串的開始位置
{ 限定符的開始
| 兩個之間的匹配
{n} n是非負整數 0{2} 可以匹配2個0
{n,} 匹配個數在n個到n個以上
{n,m} 匹配個數在n到m個之間
\b 單詞邊界,定位到空格和字之間的位置
\B 非單詞邊界
\1或數字 表示第一個子式 /(a-z)+ \1\b/ig (a-z)是第一個字是,(a-z)。
全局標識符g標示經量多的匹配,i標識不區分大小寫
特殊字符在[ ]中時標識自身字符[.] = \.
[^指定] 中表示非指定符之外的
(?:p) 匹配結果,但是不存儲
(?=p) 正向肯定預查
(?!p) 正向否定預查
(?<=p) 反向肯定預查
(?<!p) 反向否定預查
\d 數字
\D 非數字
\w 數字,字母,下火線 = [a-zA-Z0-9_]
\W 非\w
實例代碼
var str = "http://www.runoob.com:80/html/html-tutorial.html";
var patt1 = /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/;
arr = str.match(patt1);
for (var i = 0; i < arr.length ; i++)
{
document.write(arr[i]);
document.write("<br>");
}