<!--
說明:每個校驗函數(shù)默認(rèn)都不校驗要求的輸入長度,只有當(dāng)用戶有輸入的時候才開始校驗;
這樣設(shè)計的目的是因為實際應(yīng)用中有的表單是可以不要輸入的,如果某個表單域要求一定輸入,
那就可以象最后那個表單域一樣加入長度校驗。
-->
<HTML><HEAD><TITLE>FormCheck</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE>TD {FONT-SIZE: 12px; COLOR: #333333}</STYLE>
<SCRIPT language=JavaScript type=text/JavaScript
>
/*焦點放置在第一個表單域*/
function focusInFirst(){
document.forms[0].elements[0].focus();}
/*判斷用戶輸入是否為空*/
function isEmpty(ui) {
return (ui==null||ui=="");}
/*取得用戶輸入的字符串的長度*/
function getLength(ui) {
var i,sum=0;
for(i=0;i<ui.length;i++) {
if ((ui.charCodeAt(i)>=0) && (ui.charCodeAt(i)<=255))
sum++;
else
sum+=2;}
return sum;}
/*是否為數(shù)字、字母或下劃線*/
function isNLU(ui) {
var valid=/^\w*$/;
return (valid.test(ui));}
/*判斷是否為身份證號碼*/
function isIdno(ui){
var valid=/(^\d{16}$)|(^\d{18}$)/;
return (isEmpty(ui)||valid.test(ui));}
/*判斷是否為郵政編碼*/
function isPostCode(ui){
var valid=/^\d{6}$/;
return (isEmpty(ui)||valid.test(ui));}
/*判斷是否為固定電話*/
function isChinaTel(ui){
var valid=/^0\d{2,3}\-\d{7,8}$/;
return (isEmpty(ui)||valid.test(ui));}
/*判斷是否為移動電話*/
function isChinaMob(ui){
var valid=/^0?13[0,1,3,5,6,8,9]\d{8}$/;
return (isEmpty(ui)||valid.test(ui));}
/*判斷是否為電話,只能為固定電話或移動電話*/
function isTel(ui){
var valid=/(^0\d{2,3}\-\d{7,8}$)|(^0?13[0,1,3,5,6,8,9]\d{8}$)/;
return (isEmpty(ui)||valid.test(ui));}
/*判斷是否為郵件*/
function isMail(ui){
if(isEmpty(ui)){return true;}
var notValid=/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(^\-)|(\-\.)|(\.\-)/;
var valid=/^.+\@[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}$/;
return (!notValid.test(ui)&&valid.test(ui));}
/*用戶輸入字符串長度是否在兩值之間*/
function isLenBetween(ui,minl,maxl) {
return (ui>=minl&&ui<=maxl);}
</SCRIPT>
<SCRIPT language=JavaScript>
<!--
function formCheck(){
if(!isIdno(document.testForm.id.value)){
alert("身份證號碼輸入有誤!要求只能輸入數(shù)字,長度為16或18位。");
document.testForm.id.focus();
return false;}
if(!isChinaTel(document.testForm.tel.value)){
alert("固定電話號碼輸入有誤!合法的格式為:區(qū)號-電話號碼。");
document.testForm.tel.focus();
return false;}
if(!isChinaMob(document.testForm.mobi.value)){
alert("移動電話號碼輸入有誤!");
document.testForm.mobi.focus();
return false;}
if(!isMail(document.testForm.mail.value)){
alert("郵箱輸入有誤!");
document.testForm.mail.focus();
return false;}
if(!isPostCode(document.testForm.post.value)){
alert("郵政編碼輸入有誤!要求只能輸入數(shù)字,長度為6位。");
document.testForm.post.focus();
return false;}
if(!isNLU(document.testForm.nlu.value)){
alert("該域只能輸入數(shù)字、字母或下劃線!");
document.testForm.nlu.focus();
return false;}
var len=getLength(document.testForm.leng.value);
if(len<4||len>6){
alert("該域要求輸入長度范圍是4至6個字符!");
document.testForm.leng.focus();
return false;}
}
//-->
</SCRIPT>
<BODY text=#000000 bgColor=#ffffff onload=focusInFirst()>
<CENTER><B><FONT face="Geneva, Arial, Helvetica, san-serif" color=#ff6600
size=4>The sample of FormCheck</FONT></B> <FONT
face="Arial, Helvetica, sans-serif" size=2>(By Roczhao) </FONT>
<HR width="60%" color=#000000 noShade SIZE=1>
<FORM name=testForm onsubmit="return formCheck();" method=post>
<TABLE cellSpacing=0 cellPadding=0 width=500 border=1>
<TBODY>
<TR>
<TD width=182 height=25>身份證:</TD>
<TD width=312><INPUT name=id> </TD></TR>
<TR>
<TD width=182 height=25>固定電話:</TD>
<TD width=312><INPUT name=tel> </TD></TR>
<TR>
<TD width=182 height=25>手機號碼:</TD>
<TD width=312><INPUT name=mobi> </TD></TR>
<TR>
<TD width=182 height=25>郵箱:</TD>
<TD width=312><INPUT name=mail> </TD></TR>
<TR>
<TD width=182 height=25>郵編:</TD>
<TD width=312><INPUT name=post> </TD></TR>
<TR>
<TD width=182 height=25>只能輸入數(shù)字、字母、下劃線:</TD>
<TD width=312><INPUT name=nlu> </TD></TR>
<TR>
<TD width=182 height=25>輸入長度在4-6之間:</TD>
<TD width=312><INPUT name=leng> </TD></TR>
<TR align=center>
<TD colSpan=2 height=25><INPUT type=submit value=" 點擊測試 " name=Submit>
</TD></TR></TBODY></TABLE></FORM></CENTER></BODY></HTML>
/*js函數(shù)文件 formcheck.js*/
/*------------------------------------------------------------------------------
* File: formcheck.js
* Description:FormCheck組件的函數(shù)庫文件(部分),共計110個方法
*------------------------------------------------------------------------------*/
/*焦點放置在第一個表單域*/
function focusInFirst(){
document.forms[0].elements[0].focus();}
/*判斷用戶輸入是否為空*/
function isEmpty(ui) {
return (ui==null||ui=="");}
/*取得用戶輸入的字符串的長度*/
function getLength(ui) {
var i,sum=0;
for(i=0;i<ui.length;i++) {
if ((ui.charCodeAt(i)>=0) && (ui.charCodeAt(i)<=255))
sum++;
else
sum+=2;}
return sum;}
/*是否為數(shù)字、字母或下劃線*/
function isNLU(ui) {
var valid=/^\w*$/;
return (valid.test(ui));}
/*判斷是否為身份證號碼*/
function isIdno(ui){
var valid=/(^\d{16}$)|(^\d{18}$)/;
return (isEmpty(ui)||valid.test(ui));}
/*判斷是否為郵政編碼*/
function isPostCode(ui){
var valid=/^\d{6}$/;
return (isEmpty(ui)||valid.test(ui));}
/*判斷是否為固定電話*/
function isChinaTel(ui){
var valid=/^0\d{2,3}\-\d{7,8}$/;
return (isEmpty(ui)||valid.test(ui));}
/*判斷是否為移動電話*/
function isChinaMob(ui){
var valid=/^0?13[0,1,3,5,6,8,9]\d{8}$/;
return (isEmpty(ui)||valid.test(ui));}
/*判斷是否為電話,只能為固定電話或移動電話*/
function isTel(ui){
var valid=/(^0\d{2,3}\-\d{7,8}$)|(^0?13[0,1,3,5,6,8,9]\d{8}$)/;
return (isEmpty(ui)||valid.test(ui));}
/*判斷是否為郵件*/
function isMail(ui){
if(isEmpty(ui)){return true;}
var notValid=/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(^\-)|(\-\.)|(\.\-)/;
var valid=/^.+\@[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}$/;
return (!notValid.test(ui)&&valid.test(ui));}
/*用戶輸入字符串長度是否在兩值之間*/
function isLenBetween(ui,minl,maxl) {
return (ui>=minl&&ui<=maxl);}