正则表达详解及例题

一、什么是正则表达式:所谓正则表达式也称为规则表达式,作用是用来校验字符串是否符合规则要求,也可以用来检索字符串中是否包含符合要求的子串。

二、正则表达式的创建

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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值