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

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

html代碼
由于無(wú)法上傳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">用戶(hù)名</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ī)號(hào)</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">身份證號(hào)</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è)置一個(gè)ID用來(lái)傳參
switch (ID) {
//根據(jù)傳過(guò)來(lái)的input的"ID"判斷進(jìn)行不同的正則表達(dá)式驗(yàn)證
//用戶(hù)名驗(yàn)證
case UserName:
//用戶(hù)名的正則表達(dá)式
var UserNameRule = /^[A-Z][a-zA-Z0-9_]{6,20}$/;
//調(diào)用下面的編寫(xiě)的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ī)號(hào)驗(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:
//身份證號(hào)驗(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("操作錯(cuò)誤!請(qǐng)關(guān)閉網(wǎng)頁(yè)")
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("輸入錯(cuò)誤");
}
}
</script>
</body>
</html>
js代碼
//輸入框的校驗(yàn)
/**輸入框的校驗(yàn) 消息顯示區(qū)域的ID 必須按照eleId+"s"
* @param {Object} eleId
* @param {Object} rule
*/
function reg(eleId,rule){
//動(dòng)態(tài)的添加一個(gè)消息顯示標(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ǔ)充說(shuō)明
我目前使用的開(kāi)發(fā)工具是 HBuilder X
代碼風(fēng)格偏向于bootstrap前端框架
有喜歡的朋友可以點(diǎn)擊下方鏈接了解
如果需要我的樣式請(qǐng)導(dǎo)入bootstrap.min.css
總結(jié)
以上所述是小編給大家介紹的JS使用正則表達(dá)式判斷輸入框失去焦點(diǎn)事件,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Javascript中產(chǎn)生固定結(jié)果的函數(shù)優(yōu)化技巧
分享一個(gè)Javascript編寫(xiě)函數(shù)的優(yōu)化技巧;適用的函數(shù)應(yīng)該要滿(mǎn)足以下條件;產(chǎn)生固定結(jié)果;復(fù)雜或較耗時(shí)等等,感興趣的朋友可以了解下2013-01-01
JS小功能(列表頁(yè)面隔行變色)簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了JS列表頁(yè)面隔行變色簡(jiǎn)單實(shí)現(xiàn),有需要的朋友可以參考一下2013-11-11
JavaScript給每一個(gè)li節(jié)點(diǎn)綁定點(diǎn)擊事件的實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript給每一個(gè)li節(jié)點(diǎn)綁定點(diǎn)擊事件的實(shí)現(xiàn)方法,包括js循環(huán)給li綁定參數(shù)不同的點(diǎn)擊事件,需要的朋友可以參考下2016-12-12
JS實(shí)現(xiàn)圖表日期分類(lèi)按色顯示效果
這篇文章主要介紹了JS實(shí)現(xiàn)圖表日期分類(lèi)按色顯示,文中需要注意若 iOS 手機(jī)預(yù)覽時(shí)顯示NaN ,可能是時(shí)間格式的問(wèn)題,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
關(guān)于在Servelet中如何獲取當(dāng)前時(shí)間的操作方法
下面小編就為大家?guī)?lái)一篇關(guān)于在Servelet中如何獲取當(dāng)前時(shí)間的操作方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
JavaScript獲取GridView選擇的行內(nèi)容
一般GridView第一列是多選框CheckBox,負(fù)責(zé)標(biāo)記當(dāng)前行是否被選中,后面可以有文本框TextBox,下拉框DropDownList,標(biāo)簽Lable2009-04-04

