正则表达式创建方式:
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>