正则的定义
- 正则就是规则,用来操作字符串的,判断字符串格式是否正确。
- 正则就是用来验证字符串的。
正则写法
- 语法:正则字面量(字符串) var reg = // reg就可以验证字符串。
正则对象
- 语法:创建正则对象 对象:new RegExp(模式,修饰符);
正则对象和正则字符串的区别
- (1)正则对象里:要使用双斜杠 \w ,\d, 转义时,也要双 \
- (2)正则对象里:正则是以 “” 存在的
正则元字符:
.除了换行和行结束符,任意单个字符
\w 查找单词字符。 (字母,数字,下划线)
\W 查找非单词字符。
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符
\u4e00-\u9fa5 匹配汉字的
\b 匹配单词边界。
\B 匹配非单词边界
量词
- 最少0次,多了不限 ,0个或多个
- +最少一次 多了不限,1个或多个
- ?{n} 匹配 n个 最少0个,最多1个,(0个或一个)
- {n,} 匹配最少 n 个 {n,m} 匹配最少n 个,最多 m 个
- {,m} 匹配最多m个
定界符:
- $ 结束符 ^ 开始符
- g 表示全局 i:不区分大小写 m:表示多行
- [^abc]:就表示非的意思
- ?=n 前面的字符后紧跟着n的字符串 a?=x ax
- ?!n 前面的字符后没有n的字符串 a?!x ab
字符类
[abc] 表示abc里的任意一个字符
[0-9] 匹配0到9之间的任意一个数字
[a-z] 匹配a到z之间的任意一个小写字符
[A-Z] 匹配A到Z之间的任意一个大写字符
[A-z] 匹配A到z之间的任意一个大小写字符
[A-z0-9] 匹配任意一个字母(大小写字母)或数字
[A-z0-9_] 匹配字母数字下划线
[a-z0-9] 匹配a到z或0到9之间的任意一个字符
[0-37-9] 匹配0到3或7到9之间的任意个亿字符
[ \u4e00-\u9fa5] 匹配任意一个汉字的
[^]:[^abc] 匹配除了abc以外的任意一个字符
():(red|green|blue) 匹配red green blue之间的任意一个
RegExp方法
- 1.****正则对象.exec(字符串):他返回的是数组,其中存放的结果,如果未找到,则他的返回值是null;如果字符串里有匹配的字符串就返回第一个匹配的字符.
- 2.正则对象.test(字符串):返回的是
boolean
匹配正确是true
,匹配失败是false
;
- 3.正则对象
.lastIndex
:该属性存放一个整数,他声明的是上一次匹配文本之后的第一个字符位置。如果不设置全局时,就不存在此属性。
支持正则表达式的String
- 1.字符串.search(正则模式):类似于
indexOf
:返回第1个能匹配的下标,找不到返回-1;而且它会忽略全局
- 例:字符串.
search(/[0-9]/i)
返回第一个匹配的下标,i修饰符无效。
- 2.***字符串
.match
(正则模式) :返回的是数组,
- 全局匹配时,返回的是结果组成的数组。 不是全局时,返回第一个匹配的结果数组。类似于exec的返回结果
- 例:字符串
.match(/[0-9]/)
返回第一个匹配的结果
- 例:字符串.
match(/[0-9]/g
) 返回所有匹配的结果
- 3.字符串.replace(正则模式,字符串,函数)
- 语法: 字符串
.replace(/i/g,function(){})
; 类似于迭代
return * 在这是把匹配的结果换成*
- ***在正常情况下,
replace
只能替换1个,如果加上全局时,就表示全部都被替换掉了。
- 4.字符串.split(模式) :表示切割方法 默认是全局匹配。