JS使用正則表達(dá)式判斷輸入框失去焦點(diǎn)事件
效果圖

項(xiàng)目的正則表達(dá)式規(guī)則
1:用戶名: 大寫字母開頭 6-20位字符(不允許有符號但是允許有_)
2:密碼 大寫開頭 數(shù)字字母符號混合 8-15位
3:確認(rèn)密碼 大寫開頭 數(shù)字字母符號混合 8-15位
4:郵箱 郵箱格式
5:手機(jī)號 手機(jī)號格式
6:身份證號 身份證號格式
7:地址 中文開頭 數(shù)字 - 字母 中文混合
項(xiàng)目目錄

html代碼
由于無法上傳bootstrap.min.css
需要樣式的需要前往官網(wǎng)下載
bootstrap中文網(wǎng)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="css/bootstrap.min.css" />
<script src="js/reg.js"></script>
</head>
<body>
<form class="form-horizontal col-md-offset-3" role="form">
<div class="form-group">
<div class="col-md-offset-3">
<h2>正則表達(dá)式</h2>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">用戶名</label>
<div class="col-lg-3">
<input class="form-control" id="UserName" name="UserName" type="text" onfocusout="verify(UserName)">
</div>
<span id="UserNames" style="font-size: 16pt;"></span>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">密碼</label>
<div class="col-lg-3">
<input class="form-control" id="pwd" name="pwd" type="text" onfocusout="verify(pwd)">
</div>
<span id="pwds" style="font-size: 16pt;"></span>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">確認(rèn)密碼</label>
<div class="col-lg-3">
<input class="form-control" id="affirmPwd" name="affirmPwd" type="text" onfocusout="verify(affirmPwd)">
</div>
<span id="affirmPwds" style="font-size: 16pt;"></span>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">郵箱</label>
<div class="col-lg-3">
<input class="form-control" type="text" id="email" name="email" onfocusout="verify(email)">
</div>
<span id="emails" style="font-size: 16pt;"></span>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">手機(jī)號</label>
<div class="col-lg-3">
<input class="form-control" type="text" id="cellPhone" name="cellPhone" onfocusout="verify(cellPhone)">
</div>
<span id="cellPhones" style="font-size: 16pt;"></span>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">身份證號</label>
<div class="col-lg-3">
<input class="form-control" id="identityCard" name="identityCard" type="text" onfocusout="verify(identityCard)">
</div>
<span id="identityCards" style="font-size: 16pt;"></span>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">地址</label>
<div class="col-lg-3">
<input class="form-control" id="site" name="site" type="text" onfocusout="verify(site)">
</div>
<span id="sites" style="font-size: 16pt;"></span>
</div>
<div class="form-group">
<div class="col-lg-3 col-md-offset-3">
<input type="button" class="btn btn-primary btn-lg" value="校驗(yàn)" onclick="OnClick()">
</div>
</div>
</form>
<script type="text/javascript">
var ID = "";
function verify(ID) {
//設(shè)置一個ID用來傳參
switch (ID) {
//根據(jù)傳過來的input的"ID"判斷進(jìn)行不同的正則表達(dá)式驗(yàn)證
//用戶名驗(yàn)證
case UserName:
//用戶名的正則表達(dá)式
var UserNameRule = /^[A-Z][a-zA-Z0-9_]{6,20}$/;
//調(diào)用下面的編寫的js方法,傳入input的id和正則表達(dá)式
reg("UserName", UserNameRule);
break;
case pwd:
//密碼驗(yàn)證
var pwdRule = /^[A-Z][a-zA-Z0-9_]{8,15}$/;
reg("pwd", pwdRule);
break;
case affirmPwd:
//密碼確認(rèn)驗(yàn)證
var affirmPwdRule = /^[A-Z][a-zA-Z0-9_]{8,15}$/;
reg("affirmPwd", affirmPwdRule);
break;
case email:
//郵箱驗(yàn)證
var emailRule = /^[A-z0-9]+@[a-z0-9]+.com$/;
reg("email", emailRule);
break;
case cellPhone:
// 手機(jī)號驗(yàn)證
var cellPhoneRule = /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/;
reg("cellPhone", cellPhoneRule);
break;
case identityCard:
//身份證號驗(yàn)證
var identityCardRule = /^([1-9]){1}[0-9]{17}|[1-9]{1}[0-9]{16}(x|X)?$/;
reg("identityCard", identityCardRule);
break;
case site:
//地址驗(yàn)證
var siteRule = /^[\u4e00-\u9fa5]+[\u4E00-\u9FA5A-Za-z0-9_]+$/;
reg("site", siteRule);
break;
//設(shè)置特殊情況
default:
alert("操作錯誤!請關(guān)閉網(wǎng)頁")
break;
}
}
//提交驗(yàn)證判斷是否都符合正則表達(dá)式
function OnClick(){
//獲取所有的span標(biāo)簽
var a = document.getElementsByTagName("span");
var str = "";
//循環(huán)獲取span的內(nèi)容
for (var i = 0; i < a.length; i++) {
str+=a[i].innerText;
}
if(str == "√√√√√√√"){
alert("輸入正確");
}else{
alert("輸入錯誤");
}
}
</script>
</body>
</html>
js代碼
//輸入框的校驗(yàn)
/**輸入框的校驗(yàn) 消息顯示區(qū)域的ID 必須按照eleId+"s"
* @param {Object} eleId
* @param {Object} rule
*/
function reg(eleId,rule){
//動態(tài)的添加一個消息顯示標(biāo)簽
var inputValue = document.getElementById(eleId).value;
var result = rule.test(inputValue.trim());
if(result && inputValue != ""){
document.getElementById(eleId+"s").innerHTML="√";
document.getElementById(eleId+"s").style.color="green";
}else{
document.getElementById(eleId+"s").innerHTML="×";
document.getElementById(eleId+"s").style.color="red";
}
}
補(bǔ)充說明
我目前使用的開發(fā)工具是 HBuilder X
代碼風(fēng)格偏向于bootstrap前端框架
有喜歡的朋友可以點(diǎn)擊下方鏈接了解
如果需要我的樣式請導(dǎo)入bootstrap.min.css
總結(jié)
以上所述是小編給大家介紹的JS使用正則表達(dá)式判斷輸入框失去焦點(diǎn)事件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Javascript中產(chǎn)生固定結(jié)果的函數(shù)優(yōu)化技巧
分享一個Javascript編寫函數(shù)的優(yōu)化技巧;適用的函數(shù)應(yīng)該要滿足以下條件;產(chǎn)生固定結(jié)果;復(fù)雜或較耗時等等,感興趣的朋友可以了解下2013-01-01
JS小功能(列表頁面隔行變色)簡單實(shí)現(xiàn)
這篇文章主要介紹了JS列表頁面隔行變色簡單實(shí)現(xiàn),有需要的朋友可以參考一下2013-11-11
JavaScript給每一個li節(jié)點(diǎn)綁定點(diǎn)擊事件的實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript給每一個li節(jié)點(diǎn)綁定點(diǎn)擊事件的實(shí)現(xiàn)方法,包括js循環(huán)給li綁定參數(shù)不同的點(diǎn)擊事件,需要的朋友可以參考下2016-12-12
關(guān)于在Servelet中如何獲取當(dāng)前時間的操作方法
下面小編就為大家?guī)硪黄P(guān)于在Servelet中如何獲取當(dāng)前時間的操作方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06
JavaScript獲取GridView選擇的行內(nèi)容
一般GridView第一列是多選框CheckBox,負(fù)責(zé)標(biāo)記當(dāng)前行是否被選中,后面可以有文本框TextBox,下拉框DropDownList,標(biāo)簽Lable2009-04-04

