一、什么是正则表达式:所谓正则表达式也称为规则表达式,作用是用来校验字符串是否符合规则要求,也可以用来检索字符串中是否包含符合要求的子串。
二、正则表达式的创建
1. 利用构造方法创建
1) var 表达式名称= new RegExp(”表达式”,”修饰符”);
2. 利用字面量的形式创建
1) var 表达式名称= /表达式/修饰符;
三、正则表达式的常用方法
1. test
1) 作用:就是用来检测字符串是否符合正则表达式
2) 格式:正则表达式.test(字符串);
3) 注意:如果匹配返回值为true,否则返回值为false
四、正则表达式中常用的构成元素
1. *:表示前面字符的个数为0到正无穷
2. +:表示前面字符的个数为1到正无穷
3. ?:表示前面字符的个数为0到1个
4. {n}:表示前面字符的个数为n个
5. {n,}:表示前面字符最少为n个,最多为正无穷
6. {n,m}:表示前面字符最少n个,最多m个
7. \:转义字符,可以将普通字符赋予特定的功能和含义,如\n,也可以将特殊字符转变为普通字符,如\+
8. \d:表示所有的数字
9. \D:表示所有非数字
10. \w:表示所有的字符、数字、下划线
11. \W:表示字母、数字、下划线以外的所有字符
12. \s:表示所有的空白符
13. \S:表示所有的非空白符
14. .:表示除了\n之外的任意字符
15. [],主要有以下几种形式
1) [值1值2值3]:表示字符串中包含值1或值2或值3
2) [值1-值2]:表示值1到值2间的任意字符,如[1-9]表示1-9间的任意数字
3) [^值1值2值3]:表示字符串中不包含值1值2值3
4) [\u4e00-\u9fa5]:表示任意的一个汉字
16. |:表示或者的意思,格式值1|值2
17. ^:表示以某个字符开头,如^a,表示以a开头
18. $:表示以某个字符结尾,如a$,表示以a作结尾,如果正则表达式中/^a$/,那么表示字符串必须是以a开头,且以a结尾,且个数为1个,如果不写^和$表示包含,如/a/表示字符串中包含a即可
19. ():表示分组
五、常用的修饰符
1. i:表示忽略大小写
2. g:表示全局匹配
3. gi:既忽略大小写,也全局匹配
例题:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
// 1.邮政编码:由6个数字构成,第一位不可以是0
var reg =/^[1-9]\d{5}$/;
// 2.手机号码:由13/15/17/18开头的11位数字
var red =/^13[578]\d{8}$/;
// 3.QQ号:第一位不可以是0,位数在5-12位的数字构成
var reg = /^[1-9]\d{4,11}$/;
// 4.检查是否是压缩文件:文件名由字母、数字、下划线构成,不可以以数字开头,后缀为.zip/rar/gz
var reg =/^[a-zA-Z_]\w*\.(zip|rar|gz)$/
// 5.电子邮件:格式为xxxxx@xxxxxx.com/cn/net/com.cn/edu/gov
var reg =/^\S+@\S+\.(com|cn|net|com\.cn|edu|gov)$/
// 6.网址:格式为http://xxxxxx.xxxxxxx.com/cn/com.cn/net/edu/gov
var reg =/^http:\/\/\w+\.\w+\.(com|cn|net|com\.cn|edu|gov)$/
// 7.密码:字母、数字、下划线构成,6-20位
var reg =/^\w{6,20}$/;
// 8.用户名:字母、数字、下划线构成,6-16位,不能以数字开头
var reg =/^[a-zA-Z_]\w{5,15}$/;
// 9.中文名字:三个汉字、中间必须是小或晓【[\u4e00-\u9fa5]表示任意一个汉字】
var reg =/^[\u4e00-\u9fa5](小|晓)[\u4e00-\u9fa5]$/
// 10.输入年龄:只能在18-40间
var reg =/^1[89]$|^40$|^[23][0-9]$/
// 11.身份证号码:15或18位,如果是15位则全部为数字,如果是18位,前17位为数字,第18位为数字或字母x,字母不区分大小写
var reg = /^\d{15}$|^\d{17}[\dx]$/i;
var str = "12345678901234561X";
var res = reg.test(str);
console.log(res);
</script>
</body>
</html>