正则表达式 学习笔记
题记:正则表达式多用于字符串的匹配和表单的验证。
一 语法 /正则表达式/标志
1.匹配自身 /a/ --->匹配字符串 "a"
/123/ --->匹配数字 123
2.特殊字符如果出现在字符串中需用 \ 转(如 /this\?/ --> "this?"),这些字符都有其自身的含义和用法:
! = $ ^ * + ? | . \ / ( ) [ ] { }
定位符 结束 开始/非 0次或多次 至少1次 0次或1次 选择 字符类 转义 语法标签 分组 字符类 重复类
3.字符类 /[abc]/ --->匹配 "a" "b" "c" 或以其开头的 字符中的一个
/[a-h]/ --->匹配 从 a-h的所有字符
/[0-9]/ --->匹配 从 0-9的所有数字
/[a-zA-Z]/ -->匹配 从a-z和A-Z的所有字符
/[^ace]/ --->除 a c e 外的所有字符
/. / --->匹配除换行符和其他 unicode行终止符之外的所有字符
/\w/ --->所有 ASCII 单字符 ,相当于 [a-z0-9A-Z_]
/\W/ --->相当于[^a-z0-9A-Z_]
/\s/ --->所有 Unicode 空白符
/\S/ --->除 之外的所有字符
/\d/ --->所有 数字 ,相当于 [0-9]
/\D/ --->相当于[^0-9]
备注:每个字符和字符类只能匹配单个字符,如果要匹配多个字符,可以多次使用字符类或者用 重复类
/第[1-9][0-9]章/ ---> 匹配第1-99章 (使用了2个字符类)
4.重复类 {n} ---》匹配前一项n次
{n,} ---》匹配前一项至少n次
{n,m} ---》匹配前一项至少n次,至多m次
? ---》匹配前一项至少0或1次
+ ---》匹配前一项至少1次
* ---》匹配前一项0或多次
/第[1-9]\d*章/ ---》匹配了所有的章节
5.选择符 |
/index | default/ ----> 匹配 “index” 或 “default”
6.定位符 ^ --->以 .. 开始的字符 多行中匹配一行的开头
$ ---> 以 .. 结束的字符 多行中匹配一行的结尾
\b --->匹配一个词的边界,也就是单词与空格之间的位置(英文中用的较多)
\B
(?=p) --->正前向申明
(?!p) --->反前向申明
7.分组 (...)
(?:...) --->不记忆与该组合所匹配的内容 (不能用于引用),其他与 (...) 一致
/boy(friend){0,1}/ ----> 匹配 "boy" "boyfriend"
/boyfriend{0,1}/ ---> 匹配 "boyfrien" "boyfriend"
备注:分组不仅可以定义重复类匹配的对象,还能用于 引用
8.引用 \1
/(['""][^'""]*\1)/ ---->匹配所有 用单引号和双引号 包裹的字符串
9.标志 i --》匹配时不区分大小写
g --》全局匹配
m --》多行匹配
二 对象及方法 var a=new RegExp(正则表达式,标志)
var a=/正则表达式/标志
1.方法 exec() 使用该方法会匹配子字符串 ,通过RegExp.$1 的形式可以对字符串进行引用
该方法使用后会记录 lastIndex ,如果要对另一个字符串再使用该方法要重置 lastIndex=0
test() 匹配成功返回 true 否则返回false。 与DOM结合使用可完成更多的功能
toSource()
toString()
2.属性 global 检测是否有 g 标签
ignoreCase
lastIndex 上次匹配后的字符位置
multiline
source
3.RegExo对象的静态属性 input
lastMatch
lastParen
leftContext 最后一次匹配成功的子字符串左侧的子字符串
rightContext
multiline

浙公网安备 33010602011771号