一、驗證小例子
//表單驗證
function checkForm(){
//01.驗證用戶名
var userName=getById("userName");
if(userName.value==""){
alert("用戶名不能爲空!")
userName.focus(); //讓文本框獲取焦點
return false;
}
//02.驗證密碼
var pwd=getById("pwd");
if(pwd.value.length<6){
alert("密碼不能小於6位!")
pwd.focus(); //讓文本框獲取焦點
return false;
}
//03.驗證密碼和重複密碼是否一致
var repwd=getById("repwd");
if(repwd.value!=pwd.value){
alert("兩次密碼不一致!")
repwd.focus(); //讓文本框獲取焦點
return false;
}
//04.驗證暱稱
var nickName=getById("nickName");
if(nickName.value==""){
alert("暱稱不能爲空!")
nickName.focus(); //讓文本框獲取焦點
return false;
}
//05.驗證郵箱
var email=getById("email");
if(email.value.indexOf("@")==-1||email.value.indexOf(".")==-1){
alert("郵箱格式不正確!")
email.focus(); //讓文本框獲取焦點
return false;
}
}
// 傳一個id 返回一個dom對象
function getById(obj){
return document.getElementById(obj);
}
二、即時驗證
/**value
* Created by honglin.jiang on 2014/10/14.
*/
//獲取DOM對象
function e(str){
return document.getElementById(str);
}
//動態添加有樣式的內容
//ok_prompt 爲提示文字驗證正確的className
//error_prompt 爲提示文字驗證錯誤時className
//import_prompt 爲提示文字提示時className
function appendHtml(obj,str,className){
obj.innerHTML = str;
obj.className = className;
}
//驗證表單
function checkForm(){
//把全部的驗證 寫成一個數組
var ids=["checkUserName()","checkPwd()","checkRepwd()","checkNikeName()","checkTel()","checkEmail()"];
//定義變量 記錄 返回true的方法
var num=0;
for(var i=0;i<ids.length;i++){
if(eval(ids[i])){
num++;
}
}
//全部的驗證都經過 纔是表單提交
return (ids.length==num)?true:false;
}
//得到鼠標時觸發的事件
//import_prompt 爲提示文字提示時className
function focusShow(inputId,msg){
var dom =e(inputId); //獲取dom對象
var dmsg =e(inputId+"Id"); //獲取提示信息的dom對象
dmsg.style.borderColor="green";
appendHtml(dmsg,msg,"import_prompt");
}
//驗證用戶名輸入
function checkUserName(){
var flag=false;
var userName= e("userName");
var userNameId= e("userNameId");
if(userName.value==""){
userName.style.borderColor="red";
appendHtml(userNameId,"用戶名不能爲空","error_prompt");
}else{
userName.style.borderColor="green";
appendHtml(userNameId,"輸入正確","ok_prompt");
flag=true;
}
return flag;
}
//驗證密碼
function checkPwd(){
var flag=false;
var pwd= e("pwd");
var pwdId= e("pwdId");
if(pwd.value==""){
pwd.style.borderColor="red";
appendHtml(pwdId,"密碼不能爲空","error_prompt");
}else{
pwd.style.borderColor="green";
appendHtml(pwdId,"輸入正確","ok_prompt");
flag=true;
}
return flag;
}
//驗證重複密碼
function checkRepwd(){
var flag = true;
var odom = e("repwd");//輸入框DOM對象
var omsg = e("repwdId");//信息提示DOM對象
if(odom.value == ""){
odom.style.borderColor = "red";
appendHtml(omsg,"確認密碼不能爲空","error_prompt");
flag = false;
}else if(odom.value != e("pwd").value){
odom.style.borderColor = "red";
appendHtml(omsg,"兩次輸入的密碼不一致","error_prompt");
flag = false;
} else{
odom.style.borderColor = "green";
appendHtml(omsg,"輸入正確","ok_prompt");
flag = true;
}
return flag;
}
//驗證暱稱
function checkNikeName(){
var flag = true;
var odom = e("nickName");//輸入框DOM對象
var omsg = e("nickNameId");//信息提示DOM對象
if(odom.value == ""){
odom.style.borderColor = "red";
appendHtml(omsg,"暱稱不能爲空,請輸入暱稱","error_prompt");
flag = false;
}else{
odom.style.borderColor = "green";
appendHtml(omsg,"輸入正確","ok_prompt");
flag = true;
}
return flag;
}
//驗證手機
function checkTel(){
var flag = true;
var odom = e("tel");//輸入框DOM對象
var omsg = e("telId");//信息提示DOM對象
if(odom.value == ""){
odom.style.borderColor = "red";
appendHtml(omsg,"關聯手機號碼不能爲空,請輸入關聯手機號碼","error_prompt");
flag = false;
}else{
odom.style.borderColor = "green";
appendHtml(omsg,"輸入正確","ok_prompt");
flag = true;
}
return flag;
}
//驗證郵箱
function checkEmail(){
var flag = true;
var odom = e("email");//輸入框DOM對象
var omsg = e("emailId");//信息提示DOM對象
if(odom.value == ""){
odom.style.borderColor = "red";
appendHtml(omsg,"保密郵箱不能爲空,請輸入保密郵箱","error_prompt");
flag = false;
}else if( odom.value.indexOf("@")==-1 || odom.value.indexOf(".")==-1 ){
odom.style.borderColor = "red";
appendHtml(omsg,"郵件格式必須包含@和.","error_prompt");
flag = false;
}else{
odom.style.borderColor = "green";
appendHtml(omsg,"輸入正確","ok_prompt");
flag = true;
}
return flag;
}
三、正則表達式驗證用戶名
<script type="text/javascript">
function checkForm(){
var userName= document.getElementById("userName");
//書寫正則表達式 用戶名只能是字母或者數字而且在4到16個長度 包含4,16
var reg="^[a-zA-Z0-9]{4,16}$";
//var reg1="^[a-zA-Z0-9]?$";
var regExp=new RegExp(reg);
alert( regExp.test(userName.value)?"用戶名正確":"不匹配");
}
</script>
</head>
<body>
<form onsubmit="return checkForm()">
<input type="text" name="userName" id="userName">
<input type="submit" value="驗證">
</form>
</body>
四、正則表達式驗證郵箱
<script type="text/javascript">
function checkForm(){
var email= document.getElementById("email");
//書寫正則表達式 郵箱
var reg=/^\w+@\w+(\.\w+){1,2}$/;
var regExp=new RegExp(reg);
alert( regExp.test(email.value)?"郵箱正確":"不匹配");
}
</script>
</head>
<body>
<form onsubmit="return checkForm()">
<input type="text" name="email" id="email">
<input type="submit" value="驗證">
</form>
</body>
五、正則表達式驗證手機號
<title>正則驗證手機號</title>
<script type="text/javascript">
function checkForm(){
var phone= document.getElementById("phone");
//書寫正則表達式 手機
var reg=/^(13|14|15|17|18)\d{9}$/;
var regExp=new RegExp(reg);
alert( regExp.test(phone.value)?"手機號正確":"不匹配");
}
</script>
</head>
<body>
<form onsubmit="return checkForm()">
<input type="text" name="phone" id="phone">
<input type="submit" value="驗證">
</form>
</body>
六、正則與String對象
<script type="text/javascript"> window.onload=function(){ var str="this is a big dog!"; //alert(str.match(/big/));查找 str 字符串中的 "big" 字符串 //alert(str.search(/i/));查找 str 字符串中的 "i" 字符串所在的位置 //alert(str.replace(/i/g,"I"));把str字符串中的 i 字符替換成 大寫的 I 字符 //alert(str.replace("i","I")); //alert(str.split(" ")); 把str字符串中的按空格進行分割 返回數組 alert(str.split(/\s+/)); } </script></head><body></body>