JavaScript使用簡單正則表達(dá)式的數(shù)據(jù)驗(yàn)證功能示例
本文實(shí)例講述了JavaScript使用簡單正則表達(dá)式的數(shù)據(jù)驗(yàn)證功能。分享給大家供大家參考,具體如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Register-reg</title>
<script type="text/javascript" language="javascript">
function checkName() {
var nameElement = document.getElementById("name");
//var regExp = /^(a-z)[^a-z\d_]/i;
var regExp = /[a-zA-Z\d_]/i; // \w 匹配包括下劃線的任何單詞字符。等價(jià)于'[A-Za-z0-9_]'。
var regExp2 = /^[A-Za-z]/i;//匹配字符串開始位置為字母
var resultElement = document.getElementById("resName");
if (nameElement.value.match(regExp) && nameElement.value.match(regExp2) && nameElement.value.length >= 6) {
//匹配成功
//會(huì)員名為字母、數(shù)字、下劃線組成,并且字母為開頭,長度不小于6
resultElement.innerHTML = "";
return true;
}
else {
resultElement.innerHTML = "會(huì)員名為字母、數(shù)字、下劃線組成,并且字母為開頭,長度不小于6!";
return false;
}
}
function checkPwd() {
var pwdElement = document.getElementById("pwd");
var regExp = /[a-zA-Z\d_]/i; // \w 匹配包括下劃線的任何單詞字符。等價(jià)于'[A-Za-z0-9_]'。
var regExp2 = /[a-zA-Z]/i; //匹配字母
var regExp3 = /\d/i; //匹配數(shù)字
var resultElement = document.getElementById("resPwd");
if (pwdElement.value.match(regExp) && pwdElement.value.match(regExp2) && pwdElement.value.match(regExp3) && pwdElement.value.length >= 6) {
//匹配成功
//密碼為字母、數(shù)字、下劃線組成,并且必須有字母、數(shù)字,長度不小于6
resultElement.innerHTML = "";
return true;
}
else {
resultElement.innerHTML = "密碼為字母、數(shù)字、下劃線組成,并且必須有字母、數(shù)字,長度不小于6!";
return false;
}
}
function checkPwd2() {
var pwdElement = document.getElementById("pwd");
var pwd2Element = document.getElementById("pwd2");
var resultElement = document.getElementById("resPwd2");
if (pwdElement.value == pwd2Element.value) {
//重輸密碼與之前密碼完全匹配
resultElement.innerHTML = "";
return true;
}
else {
resultElement.innerHTML = "密碼不一致!";
return false;
}
}
function checkGentle() {
var gentleElement = document.getElementById("gentle");
var resultElement = document.getElementById("resGentle");
if ((gentleElement.value == "男" || gentleElement.value == "女") || (gentleElement.value == "m" || gentleElement.value == "f") || (gentleElement.value == "male" || gentleElement.value == "famale")) {
//性別判斷是否在:男、女、male、famale、m、f 之內(nèi)
resultElement.innerHTML = "";
return true;
}
else {
resultElement.innerHTML = "性別判斷是否在:男、女、male、famale、m、f 之內(nèi)!";
return false;
}
}
function checkAge() {
var ageElement = document.getElementById("age");
var resultElement = document.getElementById("resAge");
if (parseInt(ageElement.value) > 0 && parseInt(ageElement.value) <= 150) {
//如果年齡在0~150之間
resultElement.innerHTML = "";
return true;
}
else {
resultElement.innerHTML = "年齡在0~150之間!";
return false;
}
}
function checkMail() {
var mailElement = document.getElementById("mail");
var regExp = /[^a-z0-9_]/gi; // 匹配非字母、數(shù)字、下劃線的字符
var regExp2 = /[a-z]/gi; // 匹配字母
var resultElement = document.getElementById("resMail");
if (!mailElement.value.match(regExp)) {//如果出現(xiàn)非字母、數(shù)字、下劃線的字符
resultElement.innerHTML = "郵箱地址不正確!";
return false;
}
else {
if (mailElement.value.indexOf(".") - mailElement.value.indexOf("@") >= 2) {
resultElement.innerHTML = "";
return true;
}
else {
resultElement.innerHTML = "郵箱地址不正確!";
return false;
}
}
}
function checkTel() {
var telElement = document.getElementById("tel");
var regExp = /\d{7,12}/g;// 匹配7~12位電話數(shù)字
var regExp2 = /[^0-9]/g; // 是否有數(shù)字以外的字符
var resultElement = document.getElementById("resTel");
if (telElement.value.match(regExp) && telElement.value.length <= 12) {
if (telElement.value.match(regExp2)) {
resultElement.innerHTML = "電話號(hào)碼為純數(shù)字,且位于7~12位之間!";
return false;
}
else {
resultElement.innerHTML = "";
return true;
}
}
else {
resultElement.innerHTML = "電話號(hào)碼為純數(shù)字,且位于7~12位之間!"; //!telElement.value.match(regExp2) &&
return false;
}
}
function checkAll() {
if (checkName() && checkPwd() && checkPwd2() && checkGentle() && checkAge() && checkMail() && checkTel()) {
alert("恭喜,填寫的信息正確!");
}
else {
alert("錯(cuò)誤,請(qǐng)確認(rèn)填寫的信息是否正確!");
}
}
//當(dāng)窗體加載完成時(shí)執(zhí)行
window.onload = function () {
var inputElements = document.getElementsByTagName("input");
inputElements[0].onblur = function () {
checkName();
}
inputElements[1].onblur = function () {
checkPwd();
}
inputElements[2].onblur = function () {
checkPwd2();
}
inputElements[3].onblur = function () {
checkGentle();
}
inputElements[4].onblur = function () {
checkAge();
}
inputElements[5].onblur = function () {
checkMail();
}
inputElements[6].onblur = function () {
checkTel();
}
inputElements[7].onclick = function () {
checkAll();
}
}
</script>
<style type="text/css">
body{ font-size:16px;
font-weight:600;
font-family:微軟雅黑;
line-height:30px;
}
thead{ text-align:center;
}
input{ width:150px;
}
input[type=button]{ height:38px;
font-size:20px;
font-weight:600;
}
ul{ border:1px solid #c3c3c3;
}
li{ list-style-type:square;
}
</style>
</head>
<body>
<form action="" method="post">
<table>
<thead><tr><td colspan="2"><h2>表單驗(yàn)證</h2></td></tr></thead>
<tr><td>會(huì)員名:</td><td><input type="text" id="name" /></td><td id="resName"></td></tr>
<tr><td>密碼:</td><td><input type="password" id="pwd" /></td><td id="resPwd"></td></tr>
<tr><td>重復(fù)密碼:</td><td><input type="password" id="pwd2" /></td><td id="resPwd2"></td></tr>
<tr><td>性別:</td><td><input type="text" id="gentle" /></td><td id="resGentle"></td></tr>
<tr><td>年齡:</td><td><input type="text" id="age" /></td><td id="resAge"></td></tr>
<tr><td>電子郵件:</td><td><input type="text" id="mail" /></td><td id="resMail"></td></tr>
<tr><td>聯(lián)系號(hào)碼:</td><td><input type="text" id="tel" /></td><td id="resTel"></td></tr>
<tr><td></td><td><input type="button" value="注冊(cè)" id="checkAll" /></td></tr>
</table>
</form>
<ul>
<li>會(huì)員名為字母、數(shù)字、下劃線組成,并且字母為開頭,長度不小于6</li>
<li>密碼為字母、數(shù)字、下劃線組成,并且必須有字母、數(shù)字,長度不小于6</li>
<li>性別判斷是否在:男、女、male、famale、m、f 之內(nèi)</li>
<li>年齡在0~150之間</li>
<li>郵箱地址</li>
<li>電話號(hào)碼為純數(shù)字,且位于7~12位之間!</li>
</ul>
</body>
</html>
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測(cè)試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript正則表達(dá)式技巧大全》、《JavaScript替換操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript中json操作技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
Javascript函數(shù)緩存的實(shí)現(xiàn)及應(yīng)用場景
Javascript函數(shù)緩存是一種提高網(wǎng)頁性能的重要技術(shù),通過將函數(shù)結(jié)果存儲(chǔ)在緩存中,避免重復(fù)計(jì)算,從而提高頁面加載速度和響應(yīng)速度,本文主要介紹了Javascript函數(shù)緩存的實(shí)現(xiàn)及應(yīng)用場景,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12
使用微信小程序開發(fā)彈出框應(yīng)用實(shí)例詳解
本文通過實(shí)例代碼給大家介紹了使用微信小程序開發(fā)彈出框功能,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10
js求數(shù)組中全部數(shù)字可拼接出的最大整數(shù)示例代碼
這篇文章主要給大家介紹了利用js如何求數(shù)組中全部數(shù)字可拼接出的最大整數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面隨著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
使用ionic在首頁新聞中應(yīng)用到的跑馬燈效果的實(shí)現(xiàn)方法
在app中經(jīng)常會(huì)有滾動(dòng)的跑馬燈效果的運(yùn)用,接下來通過本文給大家介紹使用ionic在首頁新聞中應(yīng)用到的跑馬燈效果的實(shí)現(xiàn)方法,需要的的朋友參考下2017-02-02
Grid得到選擇行數(shù)據(jù)的方法總結(jié)
Grid得到選擇行數(shù)據(jù)的方法總結(jié),需要的朋友可以參考下。2011-01-01
JS傳遞對(duì)象數(shù)組為參數(shù)給后端,后端獲取的實(shí)例代碼
下面小編就為大家?guī)硪黄狫S傳遞對(duì)象數(shù)組為參數(shù)給后端,后端獲取的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06

