正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式的作用: 处理字符串,相当于过滤的性质, 找到符合自己的字符集;
获取正则的两种方式:
字面量的形式: /正则体/修饰符;
字面量的形式无法拼接;
构造函数的形式: var redRexp(‘’ ’’, 修饰符) 构造函数(可以拼接成正则体);
var str = xxx.value;
/str/g
var reg = regExp(‘str’, g);
元字符:
数字 \d; 仅限于0 到9
返回小数
var reg3 = /^\d+\ . \d+$\/
\D 匹配一个非数字
\s 匹配任何不可见字符空白符,包括空格、制表符、换页符等等。等价于[ \f \n \r \t \v] 换行 制表符(tab键) 空格(space键)
\n 换行
\r 换行(有时不能用)
\p 制表符
\v 制表符
\S 与 \s作用相反
\b 匹配单词边界 两个单词之间用其他符号隔开时(一般是空格或其他标点符号)
\B 与\b作用相反
\w 匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_ ]”,这里的"单词"字符使用Unicode字符集
\W 与\w作用相反 可以匹配一个汉字
var reg4 = /\W+/
console.log(reg4.test((‘返回’)) //返回 true;
起数量限制作用的元字符
- (0到多次)
?(0或1次)
- (1或多次)
{x,y}x到y的区间
{x} 代表出现了x次;
\转意
(?=) 向前匹配
(?<=) 向后匹配
. 代表匹配任何字符
- 代表任意数量
^放在[]外边是以什么为开始的意思 放在[ ]里边代表非
$ 以什么结尾的意思
[]集合 集合中的元素只取一个 多个元素是或的关系[0-9]
集合里边写特殊意义的字符代表他的本意 不可以写\ 会报错;
reg5 = /\w\d/
代表一个字符和数字
reg6 = /([a-z])(\d)/
等价:
等价是等同于的意思,表示同样的功能,用不同符号来书写。
?,*,+,\d,\w 都是等价字符
?等价于匹配长度{0,1};
*等价于匹配长度{0,} ;
+等价于匹配长度{1,};
\d等价于[0-9];
\D等价于[^0-9];
\W等价于[^A-Za-z_0-9];
正则的用法:
1.字符串的replace方法:
字符串.replace(正则体, 新的替换对象);
2.字符串的match方法:
未找到符合条件的返回null;
如果匹配到了1个 返回一个数组, 第一项是匹配到的字符串
input:返回的是原字符串, index:返回的是对应的下标
如果找到多个 返回的则是找到的所有的满足条件的字符集组成的数组;
3字符串的search方法:
返回找到第一个找到的字符集的下标;
4正则的test方法:
正则体.test(字符串);
返回布尔值 代表了是否找到目标字符串;
满足正则体的返回true 不满足的返回false
5正则的exec方法:
正则体.exec(字符串);
没有符合正则的条件时 返回null
找到时,返回一个数组,如果匹配到了1个 返回一个数组, 第一项是匹配到的字符串
input:返回的是原字符串, index:返回的是对应的下标;