正则的概念
- 正则表达式(regular expression)是一个描述字符规则的对象。ECMAScript 的RegExp 类(构造函数)表示正则表达式,而String 和 RegExp 都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的方法。
- 正则表达式主要用来验证客户端的输入数据,因为客户端验证,可以节约大量的服务器端的系统资源,并且提供更好的用户体验。
创建方式
- 使用RegExp这个对象
第一个参数就是我们的模式字符串(变量)
var reg= new RegExp('study');
第二个参数可选,模式修饰符
var reg = new RegExp('study', 'ig');
i 表示忽略大小写
g 表示全局匹配
m 表示多行匹配 - 还可以用字面量方式直接声明(如果正则表达式中有变量则不可用此方式);
var reg = /study/ig;
测试正则表达式
- test(str)方法在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回 true,不存在则返回 false。
- exec()方法对一个指定的字符串执行一个正则表达式,简言之,就是在一个字符串中执行匹配检索。如果它没有找到任何匹配返回null,如果找到一个匹配,它将返回一个数组。
字符串的方法+正则表达式
- 使用 match 方法获取匹配内容,返回数组
- 使用 search 来查找匹配数据的位置,和全局没有关系,查找第一个匹配值的位置。(-1)
- 使用 replace 替换匹配到的数据,2个参数:1代表正则,2代表用来s替换的字符
- 使用 split 拆分成字符串数组
exec和match的区别:
- 定义为非全局匹配时,exec和match执行的结果是一样
- exec与全局是否定义无关系,而match则于全局相关联
获取控制
字符类:单个字符和数字
元字符/元符号匹配情况
.匹配除换行符外的任意字符
[a-z0-9]匹配括号中的字符集中的任意一个字符(小写字母和数字)
[^a-z0-9]匹配任意不在括号中的字符集中的字符
\d匹配数字[0-9],中括号表示范围。
\D匹配非数字,同[^0-9]相同
\w匹配字母和数字及_
\W匹配非字母和数字及_
字符类:空白字符
元字符/元符号匹配情况
\b匹配单词边界
\n匹配换行符
\s匹配空白字符、空格、制表符和换行符
字符类:锚字符
元字符/元符号匹配情况
^行首匹配 以及 [取反]中括号里面
$行尾匹配
字符类:重复字符
元字符/元符号匹配情况
x?匹配0个或1个x
x*匹配0个或任意多个x
x+匹配至少一个x
(xyz)+匹配至少一个(xyz)
x{m,n}匹配最少m个、最多n个x、
x{m}匹配m个
字符类:替代字符
元字符/元符号匹配情况
this|where|logo匹配this或where或logo中任意一个
应用
1.邮政编码检测
2.字符串首尾去空格
3.邮件格式检测
4.手机号检测
5.身份证检测
6.日期检测
7.中文检测
8.字符串过滤
9.密码强度验证
应用
1.表单的验证
2.查找和替换
3.输入一个字符串,中文字符占两个长度,其他的占一个长度,统计总的字符长度。
4.利用正则去除html标签标签
5.利用正则去重
6.利用正则统计字符个数
综合应用
1.掌握正则的封装
2.掌握综合表单验证