表單驗證的作用:
減輕服務器的壓力
保證輸入的數據符合要求
常用的表單驗證
日期格式
表單元素是否為空
用戶名和密碼
email地址
身份證號碼
表單選擇器用於選取某些特定的表單元素
常用的表單選擇器
input:text匹配所有單行文本框/password匹配所有密碼框/radio:匹配所有單項按鈕/
checkbox:匹配所有復選框/submit:匹配所有提交按鈕/imag:匹配所有圖像域/
reset匹配所有重置按鈕/button匹配所有按鈕/file匹配所有文本域
hidden:匹配所有不可見元素
屬性過濾選擇器
enabled:匹配所有可用元素/disabled:匹配所有不可見元素/checked:匹配所有被選中元素
selected:匹配所有選中的option元素
非空驗證
示例:if (mail == "") {
alert("Email不能為空");
return false;
}
字符串查找 indexOf():查找某個指定的字符串值在字符串中首次出現的位置
示例:var str="this is JavaScript";
var selectFirst=str.indexOf("Java"); --返回8
var selectSecond=str.indexOf("Java",12); --返回-1
長度驗證
示例:
if(pwd.length<6){
alert("密碼必須等於或大於6個字符");
return false;
}
判斷字符串是否有數字
使用for循環和substring()方法依次截取單個字符在判斷每個字符是否是數字
示例:
for (var i = 0; i < user.length; i++) {
var j = user.substring(i, i + 1);
if (isNaN(j) == false) {
alert("姓名中不能包含數字");
return false;
}
}
表單驗證事件和方法
表單驗證需要綜合運用元素的事件和方法
類別 |
名稱 |
描述 |
事件 |
onblur |
失去焦點,當光標離開某個文本框時觸發 |
onfocus |
獲得焦點,當光標進入某個文本框時觸發 |
|
方法 |
blur() |
從文本域中移開焦點 |
focus() |
在文本域中設置焦點,即獲得鼠標光標 |
|
select() |
選取文本域中的內容,突出顯示輸入區域的內容 |
正則表達式的作用:
簡潔的代碼
嚴謹的驗證文本框中的內容
if(reg.test(email) ==false){
$email_prompt.html("電子郵件格式不正確,請重新輸入");
return false;
}
普通方式
語法:var reg=/表達式/附加參數;
示例:var reg=/white/;
var reg=/white/g;
構造函數
語法:var reg=new RegExp("表達式","附加參數");
示例:
var reg=new RegExp("white");
var reg=new RegExp("white","g");
簡單模式 --只能表示具體的匹配
示例:
var reg=/china/;
var reg=/abc8/;
復合模式 --可以使用通配符表達更為抽象的規則模式
示例:
var reg=/^\w+$/;
var reg=/^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$/;
RegExp對象
屬性
global |
RegExp對象是否具有標志g,表示全局匹配 |
ignoreCase |
RegExp對象是否具有標志i,表示不區分大小寫 |
multiline |
RegExp對象是否具有標志m,表示多行匹配 |
方法
方法 |
描述 |
exec( ) |
檢索字符中是正則表達式的區配,返回找到的值,並確定其位置 |
test( ) |
檢索字符串中指定的值,返回true或false |
String對象方法
方法 |
描述 |
exec( ) |
檢索字符中是正則表達式的區配,返回找到的值,並確定其位置 |
test( ) |
檢索字符串中指定的值,返回true或false |
正則表達式符號
符號 |
描述 |
/…/ |
代表一個模式的開始和結束 |
^ |
匹配字符串的開始 |
$ |
匹配字符串的結束 |
\s |
任何空白字符 |
\S |
任何非空白字符 |
\d |
匹配一個數字字符,等價於[0-9] |
\D |
除了數字之外的任何字符,等價於[^0-9] |
\w |
匹配一個數字、下划線或字母字符,等價於[A-Za-z0-9_] |
\W |
任何非單字字符,等價於[^a-zA-z0-9_] |
. |
除了換行符之外的任意字符 |
符號 |
描述 |
{n} |
匹配前一項n次 |
{n,} |
匹配前一項n次,或者多次 |
{n,m} |
匹配前一項至少n次,但是不能超過m次 |
* |
匹配前一項0次或多次,等價於{0,} |
+ |
匹配前一項1次或多次,等價於{1,} |
? |
匹配前一項0次或1次,也就是說前一項是可選的,等價於{0,1} |