關於用js用到的頁面驗證的一些小問題個人體會,望高手指點不足
1.驗證輸入字符長度問題,首先還是應該先去掉輸入字符中的空格
function addUser() {
if(trim(userIdFiled.value).length < 4){
alert("用戶代碼至少四個字符!");
userIdFiled.focus();
return;
}
}
2.驗證輸入的是否爲郵箱,當然輸入不能爲空,因爲要檢驗其中的一小部分所以要用循環來判斷,結束後如果不正確回到錯誤輸入域修改不提交。
var emailFiled = document.getElementById("email");
if(trim(emailFiled.value).length!=0){
var tempEmail = trim(emailFiled.value);
var j=0;
for(var i=0;i<tempEmail.length;i++){
if(tempEmail.charAt(i)=='@'){
j++;
alert("j=="+j);
}
}
if(j!=1){
alert("輸入格式不正確!");
emailFiled.focus();
return;
}
}
3.用正則表達式驗證更加具體的部分
re = new RegExp("pattern",["flags"])
re
必選項。將要賦值爲正則表達式模式的變量名。
Pattern
必選項。要使用的正則表達式模式。如果用語法 2,用引號將模式引起來。
flags
可選項。如果使用語法 2 要用引號將 flag 引起來。標誌可以組合使用,可用的有:
- g (全文查找出現的所有 pattern)
- i (忽略大小寫)
- m (多行查找)
compile 方法
把正則表達式編譯爲內部格式,從而執行得更快。
rgExp.compile(pattern, [flags])
參數
rgexp
必選項。正則表達式對象的一個例子。可以是變量名或文字。
pattern
必選項。字符串表達式,它包含要被編譯的正則表達式模式。
flags
可選項。可以組合使用,可用的標誌有:
- g (全局搜索所有存在的 pattern)
- i (忽略事件)
- m (多行搜索)
test()
返回一個 Boolean 值,它指出在被查找的字符串中是否存在模式。
rgexp.test(str)
參數
rgexp
必選項。包含正則表達式模式或可用標誌的正則表達式對象。
str
必選項。要在其上測試查找的字符串
var re = new RegExp(/^[a-zA-Z]/);
re.compile(/^[a-zA-Z0-9]{4,6}$/);
if(!re.test(trim(userIdFiled.value))){
alert("輸入的必須是字母或數字4~6位!");
userIdFiled.focus();
return;
}