什么是正则表达式
正则表达式(regular expression)是一个描述字符规则的对象。ECMAScript 的RegExp 类表示正则表达式,而String 和 RegExp 都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。
正则表达式主要用来验证客户端的输入数据。 用户填写完表单单击按钮之后, 表单就会被发送到服务器,在服务器端通常会用 PHP、ASP.NET 等服务器脚本对其进行进一步处理 。因为客户端验证,可以节约大量的服务器端的系统资源,并且提供更好的用户体验。
为什么要使用正则表达式
前端往往有大量的表单数据校验工作,采用正则表达式会使得数据校验的工作量大大减轻。
如何创建正则表达式
使用RegExp这个对象,第一个参数就是我们的模式字符串
var reg= new RegExp('study'); |
第二个参数可选,模式修饰符
var reg = new RegExp('study', 'ig'); |
i 表示忽略大小写
g 表示全局匹配
m 表示多行匹配
还可以用字面量方式直接声明
var reg = /study/;
测试正则表达式
test()方法在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回 true,不存
在则返回 false。
exec()方法对一个指定的字符串执行一个正则表达式,简言之,就是在一个字符串中执行匹配检索。如果它没有找到任何匹配返回null,
如果找到一个匹配,它将返回一个数组。
exec和match的区别:
1、定义为非全局匹配时,exec和match执行的结果是一样
2、exec与全局是否定义无关系,而match则于全局相关联,当定义 为非全局,两者执行结果相同。
reg.exec(str) 如果没有匹配到,则返回null
字符串的方法+正则表达式
使用 match 方法获取匹配数组
使用 search 来查找匹配数据
使用 replace 替换匹配到的数据
使用 split 拆分成字符串数组
获取控制
字符类:单个字符和数字
元字符/元符号 | 匹配情况 |
. | 匹配除换行符外的任意字符 |
[a-z0-9] | 匹配括号中的字符集中的任意字符 |
[^a-z0-9] | 匹配任意不在括号中的字符集中的字符 |
\d | 匹配数字 |
\D | 匹配非数字,同[^0-9]相同 |
\w | 匹配字母和数字及_ |
\W | 匹配非字母和数字及_ |
字符类:空白字符
元字符/元符号 | 匹配情况 |
\0 | 匹配null字符 |
\b | 匹配空格字符 |
\n | 匹配换行符 |
\s | 匹配空白字符、空格、制表符和换行符 |
\S
| 匹配非空白字符 |
字符类:锚字符
元字符/元符号 | 匹配情况 |
^ | 行首匹配 |
$ | 行尾匹配 |
字符类:重复字符
元字符/元符号 | 匹配情况 |
x? | 匹配0个或1个x |
x* | 匹配0个或任意多个x |
x+ | 匹配至少一个x |
(xyz)+ | 匹配至少一个(xyz) |
x{m,n} | 匹配最少m个、最多n个x |
字符类:替代字符
元字符/元符号 | 匹配情况 |
this|where|logo | 匹配this或where或logo中任意一个 |