一.正则表达式的概念:
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
二.使用正则表达式:
方法一:
var reg=new RegExp(pattern,modifiers);
或者更简单的方式:
var reg=/a/;
eg:
var reg=/^.........$/; //^以什么开头,$以什么结束
1.pattern(模式) 描述了表达式的模式
2.modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配
修饰符
修饰符 | 作用 |
---|---|
i | 不分大小写 |
g | 查找所有 |
m | 查询多行 |
方括号举例子如下
正则表达式 | 对其的描述 |
---|---|
[abc] | 查找方括号之间的任何字符。 |
[^abc] | 查找任何不在方括号之间的字符。(取反) |
[0-9] | 查找任何从 0 至 9 的数字。。 |
[a-z] | 查找任何从小写 a 到小写 z 的字符。 |
[A-Z] | 查找任何从大写 A 到大写 Z 的字符。 |
[A-z] | 查找任何从大写 A 到小写 z 的字符。。 |
[adgk] | 查找给定集合内的任何字符。 |
[^adgk] | 查找给定集合外的任何字符。 |
三.正则表达式的API
1.字符串后面接3种常用函数:match(reg)(返回匹配到的字符串)、replace(reg,’…’)(替换内容)、search(reg)(返回匹配内容的开始位置)
2.正则表达式后面接2种常用函数:test(string(返回是否匹配)、exec(string)(返回匹配到的字符串)
四.正则表达式的实用举列:
1.邮箱的JS正则表达式:
var mailReg = /^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
2.身份证的JS正则表达式:
var idCardReg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
3.姓名(汉字)的JS正则表达式:
var nameReg = /^[\u4e00-\u9fa5]{2,4}$/; // 2-4位的汉字名字
4.QQ号的JS正则表达式:
var qqReg = /^[1-9][0-9]{4,9}$/;
5.时间的JS正则表达式:
var timeReg = /^([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$/; //HH:mm:ss格式,冒号可以视情况替换
6.手机号码验证:
// "[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。
var regex = "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$";
var reg="/^1[3456789]\d{9}$/";