<!--
说明:每个校验函数默认都不校验要求的输入长度,只有当用户有输入的时候才开始校验;
这样设计的目的是因为实际应用中有的表单是可以不要输入的,如果某个表单域要求一定输入,
那就可以象最后那个表单域一样加入长度校验。
-->
<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;}
/*是否为数字、字母或下划线*/
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("身份证号码输入有误!要求只能输入数字,长度为16或18位。");
document.testForm.id.focus();
return false;}
if(!isChinaTel(document.testForm.tel.value)){
alert("固定电话号码输入有误!合法的格式为:区号-电话号码。");
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("邮政编码输入有误!要求只能输入数字,长度为6位。");
document.testForm.post.focus();
return false;}
if(!isNLU(document.testForm.nlu.value)){
alert("该域只能输入数字、字母或下划线!");
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>只能输入数字、字母、下划线:</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函数文件 formcheck.js*/
/*------------------------------------------------------------------------------
* File: formcheck.js
* Description:FormCheck组件的函数库文件(部分),共计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;}
/*是否为数字、字母或下划线*/
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);}