正則驗證用戶名


首先看這下面一段效果


上面的用戶名

1、只能輸入漢字,英文,數字即下划線(_)

2、能夠檢測錯誤的字符,將相同的錯誤字符變成一個

3、將實際上的空格變成漢字的空格

下面就這個代碼的全部的效果

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
<title>三、用戶名驗證</title>
<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
	function yzcode($_val){
		var $dx_char = ''; //刪掉相同的字符的value 	
		var $ts_char = ''; //特殊字符
		var $_val = $('input[type=text]').val(); //獲得表單的value
		$str_arr = $_val.split(''); //將$_val變成數組
		var num = 0; //驗證的數字
		//將相同的字符轉化為空的字符串的數字
		(function(){
			var len = $_val.length;
			for(var i=0;i<len;i++){
				for(var j=len;j>i;j--){
					if($str_arr[i] == $str_arr[j]){
						$str_arr[j]="";
					}
				}
			}	
		})();
		//將相同的字符除掉的數組變成字符串
		(function(){
			for(var i=0;i<$str_arr.length;i++){
				$dx_char += $str_arr[i];
			}
		})();
		for(var i=0;i<$dx_char.length;i++){ //進行驗證
			num += (/[^\u4e00-\u9fa5]/ig.test($dx_char[i])&&/\W/ig.test($dx_char[i]));
		}
		if(num!=0){
			for(var i=0;i<$dx_char.length;i++){ //獲取驗證錯誤的字符
				if(/[^\u4e00-\u9fa5]/ig.test($dx_char[i])&&/\W/ig.test($dx_char[i])){
					if($dx_char[i]==' '){
						$dx_char[i]='空格';
						$ts_char = $ts_char+'空格';
					}else{
						$ts_char += $dx_char[i];
					}
				}
			}	
			$('.level').html('用戶名有特殊符號"<strong style="color:#d00;">' + $ts_char+'</strong>",請從新輸入').css('color','#999');
		}else if(num==0){
			$('.level').html('√').css('color','#080');
		}
		
	}
	//yzcode();	
	$('input[type=text]').bind('change keyup blur fucos',function(){
		yzcode($(this).val);	
	});
})
</script>
</head>
<body>
<h2>下面先檢查字符串的合乎規范,然后檢測錯誤</h2>
<label>用 戶 名:<input type="text" maxlength="25" min="6" name="" id="" value=""/>  <span class="level" style="color:#999">用戶名不少於兩位且只能為漢字、英文、數字及_</span></label>
</body>
</html>

 實現具體思路

1、獲取到的表單value,將每個字符拆分成數組

2、將相同的數組的元素剔除掉

3、將每一個數組的元素單獨去驗證得到的boolean值,去轉化為數值疊加去驗證。

  如果是等於0,那么就正確,如果不等於0就錯誤

4、如果錯誤,就要得到錯誤的字符串,其中實際的空格要轉化成漢字空格,讓人看的清楚


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM