正则表达式
正则表达式,又称规则表达式、计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本,许多程序设计语言都支持利用正则表达式进行字符串操作。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
目的:
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”):
2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
特点:
正则表达式的特点是:
1. 灵活性、逻辑性和功能性非常强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制;
3. 简洁的代码;
4. 严谨的验证文本框中的内容;
5. 正则表达式是一个描述字符模式的对象;
常用符号:
1. /.../代表一个模式的开始和结束
2. ^匹配字符串的开始
3. $匹配字符串的结束;
4. \s任何空白字符
5. \S任何非空白字符
6. \d匹配一个数字字符
7. \D除了数字以外任何字符
8. \w匹配一个数字,下划线或者字母字符
9. \W匹配一个非单字字符
10. 除了换行符号之外任意字符
重复字符:
1. {n}匹配前一项n次
2. {n,}匹配前一项n次或者多次
3. {n,m}匹配前一项n次,但不能超过m次
4. * 匹配前一项0次或者多次
5. + 匹配前一项1次或者多次
6. ? 匹配前一项0次或者1次
验证对象:
1. RegExp对象的方法
exec 检索字符中是正则表达式的区配,返回找到的值,并确定其位置
test 检索字符串中指定的值,返回true或false
2. RegExp对象的属性
global RegExp对象是否具有标志g
ignoreCase RegExp对象是否具有标志i
multiline RegExp对象是否具有标志m
3. String对象的方法
match 找到一个或多个正则表达式的匹配
search 检索与正则表达式相匹配的值
replace 替换与正则表达式匹配的字符串
split 把字符串分割为字符串数组
常用的正则表达式:
手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
电话号码("0XX-XXXXXXX"、"0XX-XXXXXXXX"、"0XXX-XXXXXXX"、"0XXX-XXXXXXXX": 0\d{2,3}-\d{7,8}
身份证号(15位、18位数字):^\d{15}|\d{18}$
Email地址: /^\w{1,}@\w{1,}(\.[a-z]{2,3}){1,2}$/
中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
用户名 (字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$