- *通配符
- ?0个或这没有
- +1个或者多个
- {n}几个
- []或者
- ()就是区域
js中正则表达式
标示符:g(全局替换),i(ignore,忽略大小写),m(多行搜索,当字符串有多行的时候)
var reg = \bis\b;
//这样,is是个单词,这种写法
正则表达式由两种基本字符类型组成:
字符:* + ? $ ^ . | \ () {} []
- 原义文本字符
- 元字符(有特殊含义的非字母字符,\b单词边界,\n...之类的)
常用类
用js写正则的时候,把正则表达式写在//里面:
- 一般情况下,正则表达式一个字符对应字符串的一个字符。
- 表达式ab\t的含义:"ab"+"tab键制表符"。
- [],或者的意思,比如[abc],就是a或b或c。
- 方向类。^,在[]里面才是取反的意思 ,[^abc],不是字符a或b或c的内容。
- 范围类。[a-z],从字母a到字母z。可以连着写[a-zA-Z],忽略大小写字母。如果想匹配”-“,那么直接加在后面[a-z-]即可。
- 预定义类。.:除了回车和换行之外的所有字符,\d:数字字符,\D:非数字字符,\s:空白符(换行、制表符等),\S:非空白符,\w:单词字符(字符、数字和下划线),\W:非单词字符
- 边界。^:开始,$:结束,\b:单词边界,\B:非单词边界。
- 量词。?:0次或者1次,*:0次或多次,+:一次或多次,{n}:n次,{n,m}:n到m此,{n,}:最少出现n次。
- 贪婪模式和非贪婪模式。/\d{3,5}/,贪婪模式:贪婪模式。/\d{3,5}?/,非贪婪模式,非贪婪模式。
- 分组。():分组,就是将小括号里面作为整体, |:或,反向引用:$n来取值,忽略分组:在分组内加问好(?:)
- 前瞻。在匹配的时候要求后面一个是什么数据,比如/w(?=\d),单词的前面是个数字。
- 对象属性。可以读取g,i,m等属性,ture或者false。
- search,match,