+ 表示可以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>");
}