正则表达式创建方式和使用方式

正则表达式创建方式:

1.通过RegExp类的构造方法创建

语法格式:new RegExp(pattern[,flags])

pattern:必选参数,用于指定需要进行匹配的模式字符串。以\\开头。

flags:可选参数,用于指定正则表达式的标志信息。

g: 全局标志。如果设置了该标志,对于某个文本执行搜索或替换时,将对文   

       本中的所有匹配部分起作用,否则紧搜索或替换第一次匹配的内容。

i:   忽略大小写标志。

m: 多行标志。如果不设置这个标志,那么^只能匹配字符串的开头,$只能匹   

配字符串的结尾;如果设置了这个标志,那么^可以匹配多行字符串的每行  

        的开头,$可以匹配多行字符串的每行的结尾。

例子:var re = new RegExp("\\d",g); 对文本中所有满足\d的进行匹配。


2.通过正则表达式字面量创建RegExp对象

正则表达式字面量由//中间加入模式字符串组成。如果还要指定标志信息,则在最后的 /后面加上标志信息。

例子:var re = /\d/g; 对文本中所有满足\d的进行匹配。


正则表达式的使用方式:

1.使用test()方法进行模式匹配

test()方法用于对一个指定的字符串执行模式匹配,如果搜索到匹配的字符,返回true,否则返回false

格式:regExp.test(str)  regExp为正则表达式,str为指定的字符串。

例子:var re = /\d/g;
         re.test(123);  //返回true
       re.tesr("ads");//返回false
       re.test("123asd");  //返回true


利用正则表达式验证电话号码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
	function checkTel(){
		var str=form1.text1.value;//获取输入的电话号码
		var er=/^((\d{3}-)?\d{8})$|^((\d{4}-)?\d{7,8})$/;//定义正则表达式
		if(er.test(str)){
			alert("你输入的电话号码合法");
			form1.text1.value="";
		}
		else{
			alert("你输入的电话号码不合法");
			form1.text1.value="";
		}
	}
</script>
</head>
<body>
<form name="form1" method="post" action="">
	请输入电话号码:<input type="text" name="text1" id="tel">
	<input type="button" name="check" value="检测" οnclick="checkTel()">
</form>
</body>
</html>


2.使用exec()方法进行模式匹配
exec()方法返回值不是true或者false,而是当没有搜索到匹配的字符时,返回null,否则返回一个数组,这个数组 的第一个元素包含与正则表达式相匹配的字符串,其他元素包含的是匹配的各个分组(用括号括起来的子表达 式)。
格式:regExp.exec(str)  regExp为正则表达式,str为指定的字符串。


利用正则表达式提取身份证中的出生年月:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
	function checkBirthday(){
		var str=form1.text1.value;//获取输入的身份证号码
		var er=/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{4})$/;//定义正则表达式
		var arr=er.exec(str);
		if(arr!=null){
			alert("你输入的身份证号码为:"+arr[0]+"\n出生年月为:"+arr[2]+"年"+arr[3]+"月"+arr[4]+"日");
			form1.text1.value="";
		}
		else{
			alert("你输入的身份证号码不合法");
			form1.text1.value="";
		}
	}
</script>
</head>
<body>
<form name="form1" method="post" action="">
	请输入身份证号码:<input type="text" name="text1" id="ID" size="50">
	<input type="button" name="check" value="从身份证号码中获取出生年月" οnclick="checkBirthday()">
</form>
</body>
</html>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值