1. 程式人生 > >javascript常用的正則表示式驗證

javascript常用的正則表示式驗證

今天摘抄了網上一些朋友的文章。結合自己的測試,整了一下一些常用的js正則表示式驗證方式。

下面以一下html頁面的方式展現出來。程式碼在javascript部分:以後有合適的再陸續補充

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>javascript正則表示式</title>
	<script type="text/javascript" language="javascript">
	function checkUser(str){	/**只允許字母數字和下劃線,且長度4-16以內**/
		var re = /^[a-zA-z]\w{3,15}$/;
	    if(re.test(str)){
	        alert("正確");
		}else{
	    	alert("錯誤");
		}
	}

	function checkMobile(str) {	/**手機號碼驗證,1打頭,11位純數字**/
	    var re = /^1\d{10}$/
	    if (re.test(str)) {
	        alert("正確");
	    } else {
	        alert("錯誤");
	    }
	}

	/**
	 * 驗證規則:區號+號碼,區號以0開頭,3位或4位
	 * 號碼由7位或8位數字組成
	 * 區號與號碼之間可以無連線符,也可以“-”連線
	 * 如:01088888888,010-88888888,0813-7777777
	 */
	function checkPhone(str){	/**電話號碼驗證**/
    var re = /^0\d{2,3}-?\d{7,8}$/;
	    if(re.test(str)){
	        alert("正確");
	    }else{
	        alert("錯誤");
	    }
	}

	/**
	 * 第一部分:由字母、數字、下劃線、短線“-”、點號“.”組成
	 * 第二部分:為一個域名,域名由字母、數字、短線“-”、域名字尾組成
	 * 域名字尾一般為.xxx或.xxx.xx,一區的域名字尾一般為2-4位,如cn,com,net,現在域名有的也會大於4位
	 */
	function checkEmail(str){
	    var re = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
	    if(re.test(str)){
	        alert("正確");
	    }else{
	        alert("錯誤");
	    }
	}

	function onlyNumbers(){	/**只能輸入正整數和小數和0**/
		var str = document.getElementById("txtNumber").value;
 		var re = /^\d+\.?\d*$/;
 		if(re.test(str)){
	        alert("正確");
	    }else{
	        alert("錯誤");
	    }
 	}

 	function onlyNumbersZZS(){	/**正整數**/
 		var str = document.getElementById("txtNumber").value;
 		var re = /^[0-9]*[1-9][0-9]*$/;
 		if(re.test(str)){
	        alert("正確");
	    }else{
	        alert("錯誤");
	    }
 	}

 	function onlyNumbersZZSZ(){	/**正整數和0**/
 		var str = document.getElementById("txtNumber").value;
 		var re = /^\d+$/;
 		if(re.test(str)){
	        alert("正確");
	    }else{
	        alert("錯誤");
	    }
 	}

 	function onlyNumbersFZS(){	/**負整數**/
 		var str = document.getElementById("txtNumber").value;
 		var re = /^-[0-9]*[1-9][0-9]*$/;
 		if(re.test(str)){
	        alert("正確");
	    }else{
	        alert("錯誤");
	    }
 	}

 	function onlyNumbersFZSZ(){	/**正負整數和0**/
 		var str = document.getElementById("txtNumber").value;
 		var re = /^-?\d+$/;
 		if(re.test(str)){
	        alert("正確");
	    }else{
	        alert("錯誤");
	    }
 	}

 	function onlyNumbersGZ(){	/**大於0且,保留兩位小數以內的正數和小數點**/
 		var str = document.getElementById("txtNumber").value;
 		var re = /^(([0-9]+[\.]?[0-9]{1,2})|[1-9])$/;
 		if(re.test(str)){
	        alert("正確");
	    }else{
	        alert("錯誤");
	    }
 	}

	function checkIdNo(){	/**驗證身份證,最後一位或大寫的X**/
 		var str = document.getElementById("txtNumber").value;
 		var re = /^\d{17}(\d|X)$/;
 		if(re.test(str)){
	        alert("正確");
	    }else{
	        alert("錯誤");
	    }
	}

	function checkChar(){	/**只有26個英文字母組成,大小寫可用**/
		var str = document.getElementById("txtNumber").value;
 		var re = /^[A-Za-z]+$/;
 		if(re.test(str)){
	        alert("正確");
	    }else{
	        alert("錯誤");
	    }

	    //其它:/^[A-Z]+$/ 26個大寫字母
	    //其它:/^[a-z]+$/ 26個小寫字母
	    //其它:/^[A-Za-z0-9]+$/ 26個大小寫字母和數字組成
	    //其它:/^\w+$/ 26個大小寫字母和數字和下劃線組成
	}

	</script>
  </head>

  <body>
    <input type="text" id="txtNumber" name="txtNumber" value="" />
    <br/>
    <a href=javascript:checkUser("DD1234567_890123")>可輸入字母數字下劃線</a><br/>
    <a href=javascript:checkMobile("13480013000")>驗證手機號</a><br/>
    <a href=javascript:checkPhone("0955-7777777")>驗證電話號碼</a><br/>
    <a href=javascript:checkEmail("[email protected]")>驗證郵箱</a><br/>
    <a href=javascript:checkChar()>其它測試</a><br/>
  </body>
</html>