js正则表达式:
. 任意字符(换行符除外)
\d 数字0-9
\D 非D
\w a-z 0-9 _
\W 非w
\s 空格符 换行符
[...] 字符范围
[^...] 字符范围以外
^ 行首
$ 行尾
\b 零宽单词边界 ??? 即匹配字与空格之间的边界如\bter.test("terout") ter\b.test("outer")
\B 非\b
\t\r\n\v\f tab 回车 换行 垂直制表符 换页符
\转义 如 /\^123/.test("^123")
{x}\1分组 /{abc]\1/.test("abcabc")
{?:x}仅分组 /{?:abc}{def}\1/.test("abcdefdef")
重复:
x* abc*匹配 ab abc abcc abccc
x+ abc+ 匹配 abc abcc abccc
x*? 非贪婪算法 abc*? 在abccc中匹配ab
x+? abc+? 在abccc中匹配abc
x{n} 重复n次; x{n} n+次; x{n,m} 重复 x大于等于n小于等于m次
flag:
/g i m global 全局 ignoreCase 无视大小写 multiline 跨行
RegExp("abc","mgi")
RegExp 方法:
/abc/.exec("abcdef");//'abc"
/abc/.test("abc");//true
/abc/.toString();//"/abc/"
var reg = /abc/; reg.compile("def");
reg.test("def");//true
string与正则:
String.prototype.search 检索位置 ''abcabcdef'.search(/{abc}\1/);//0
.replace 替换 "aabbcc".replace(/b+?/,"1");//aa1bcc
.match 匹配并获得 "aabbccbb".match(/b+/g);//["bb","bb"]
.spilt 切割 "aabbcc".split (/b+/);//["aa","cc"]
教程链接https://www.imooc.com/video/8065
学习中,不足之处请见谅。