使用test()方法進行模式匹配
test()方法用於對一個指定的字符串執行模式匹配,如果搜索到匹配的字符,
返回true,否則返回false
var objExp=/\d/g;
objExp.test("abc");
<script type="text/javascript">
var objExp=/\d/g;
var flag=objExp.test("123abc")
alert(flag); //返回true
</script>
例子:檢測電話號碼是否合法
<html>
<head>
<meta http-equiv="content-type" content="text/html" charset="UTF-8">
<script type="text/javascript" >
function checkTel(){
var str=form1.tel.value; //獲取輸入的電話號碼
var objExp=/^((\d{3}-)?\d{8})$|^((\d{4}-)?\d{7,8})$/;
if(objExp.test(str)==true){
alert("您輸入的電話號碼合法");
}else{
alert("您輸入的電話號碼不合法");
}
}
</script>
<body>
<form name="form1" method="post" action="">
請輸入電話號碼:<input type="text" name="tel" id="tel">
<input name="check" type="button" value="檢測" onclick="checkTel()">
</form>
<body>
</html>
使用exec()方法進行模式匹配
exec()方法返回值不是true或者false,而是當沒有搜索到匹配的字符時,返回null,
否則返回一個數組,這個數組的第一個元素包含與正則表達式相匹配的字符串,其他
元素包含的是匹配的各個分組(用括號括起來的子表達式)
例子:檢測身份證號碼
<html>
<head>
<meta http-equiv="content-type" content="text/html" charset="UTF-8">
<script type="text/javascript" >
function getBirthday(){
var str=form1.IDCard.value; //獲取文本框中的身份證號碼
var objExp=/(\d{6})(\d{4})(\d{2})(\d{2})(\d{4})/;
var arr=objExp.exec(str);
if(arr!=null){
alert("您輸入的身份證號是:"+arr[0]+"出生日期為:"+arr[2]+"年"+arr[3]+"月"+arr[4]+"日");
}else{
alert("輸入的身份證不合法");
}
}
</script>
<body>
<form name="form1" method="post" action="">
請輸入身份證號碼:<input type="text" name="IDCard" id="IDCard" size="50"><br/>
<input type="button" value="從身份證中獲取出生年月日" onclick="getBirthday()">
</form>
<body>
</html>