一、正则表达式
(一)正则的概念
1、正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去匹配符合规则的字符
(二)创建正则的方式
1、字面量的方式:/正则表达式/标志位;
2、构造函数方式:new RegExp('正则表达式','标志位')
(三)正则表达式的方法
1、正则对象.test(字符串):用于测试字符串是否包含正则内容,返回布尔值,常用于表单验证
2、正则对象.exec(字符串):返回伪数组,数组中的第一个元素是整个正则表达式匹配的内容,其他元素是组的匹配内容
3、字符串的方法:
1)字符串.match(正则表达式):返回伪数组,数组中的第一个元素是整个正则表达式匹配的内容,其他元素是组的匹配内容
match与exec的区别:
a、无组无标志位g的时候返回的一样
b、无组有标志位g的时候match受全局匹配影响
c、有组无标志位g的时候返回的一样
d、有组有标志位g的时候match受全局匹配的影响
2)replace(正则表达式,替换的内容);
3)search()相当于indexOf()查找当前元素的第一次出现位置的下标
(四)正则表达式的元字符有哪些(三三二三个一)
1、第一个三:{} () []
{}:限制括号前的一个或一组字符连续出现的次数
{m}:限制括号前的一个或一组字符连续出现m次
{m,}:限制括号前的一个或一组字符连续出现m至无限次
{m,n}:限制括号前的一个或一组字符连续出现m次至n次,最少m次,最多n次
():表示组
[]:表示范围
2、第二个三:* + ?
*:相当于{0,}限制*前的一个或一组字符连续出现0至无限次
+:相当于{1,}限制+前的一个或一组字符连续出现1至无限次
?:相当于{0,1}限制?前的一个或一组字符连续出现0至1次
3、二:^ $
^:
1)用于正则表达式的开头,表示定头(限制开头字符)
2)用于[]的开头,表示取反
$:只能用于正则表达式的结尾,表示定尾(限制结尾字符)
4、第一个一:
.:表示模糊匹配任意一个字符
5、第二个一:
|:表示或(通常结合组使用)
6、第三个一:
:转义字符
7、特殊转义字符
s:表示空白
S:表示非空白
d:表示数字[0-9]
D:表示非数字[^0-9]
w:表示字母,数字,下划线[a-zA-Z_]
W:表示非字母,数字,下划线[^a-zA-Z_]
:表示单词边界
B:表示非边界
注js正则标志/g,/i,/m说明
1、/g 表示该表达式将用来在输入字符串中查找所有可能的匹配,返回的结果可以是多个。如果不加/g最多只会匹配一个
2、/i 表示匹配的时候不区分大小写
3、/m 表示多行匹配,什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号