文本输入框的客户端校验[1]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 yanwl 的 blog

<!--
 validate.htc
-->
<public:component>
<public:property get="getempty" name="empty"/>
<public:property get="getzero" name="zero"/>
<public:property get="getinteger" name="integer"/>
<public:property get="getfloat" name="float"/>
<public:property get="getudate" name="udate"/>
<public:property get="getmoney" name="money"/>
<public:property get="geturl" name="url"/>
<public:property get="getemail" name="email" />
<public:property get="getsphone" name="sphone"/>
<public:property get="getlphone" name="lphone"/>
<public:property get="getphone" name="phone"/>
<public:property get="getcellphone" name="cellphone"/>
<public:property name="regexp"/>
<public:property name="validation"/>
<public:property name="message"/>

<public:method name="validate"/>

<script language="javascript" type="text/javascript">

//@region private fields
var bempty = 0x1;
var bzero = 0x2;
var binteger = 0x4;
var bfloat = 0x8;
var bdate = 0x10;
var bmoney = 0x20;
var bemail = 0x40;
var burl = 0x80;
var bsphone = 0x100;
var blphone = 0x200;
var bphone = 0x300;
var bcellphone = 0x400;

var regint = /^(([+]|[-])?0|([1-9][0-9]*))?$/;    //整数
var regfloat = /^(([+]|[-])?0|([1-9][0-9]*)([.][0-9]+)?)?$/;    //浮点数
var regmoney = /^((0|[1-9][0-9]*)(.[0-9]{1,2})?)?$/; //货币
var regsphone = /^([0-9]{6,8}([-][0-9]{3,6})?)?$/;  //电话号码(短)
var reglphone = /^([0-9]{3,4}[-][0-9]{6,8}([-][0-9]{3,6})?)?$/;    //电话号码(长)
var regemail = /^(\w+[@]\w+([.]\w+)+)?$/;   //电子邮件
var regurl = /^((http:[/][/])?\w+([.]\w+|[/]\w*)*)?$/;  //网页地址
var regcellphone = /^([0-9]{11})?$/; //手机号码

function getempty()
{
 return bempty;
}
function getzero()
{
 return bzero;
}
function getinteger()
{
 return binteger;
}
function getfloat()
{
 return bfloat;
}
function getudate()
{
 return bdate;
}
function getmoney()
{
 return bmoney;
}
function getemail()
{
 return bemail;
}
function geturl()
{
 return burl;
}
function getsphone()
{
 return bsphone;
}
function getlphone()
{
 return blphone;
}
function getphone()
{
 return bphone;
}
function getcellphone()
{
 return bcellphone;
}
//@end region

//@region private methods
function isempty(text){
  if (text == "")
  {
   return true;
  }
  var regpattern = /^\s+$/;
  return regpattern.test(text);
}
function iszero(text){
  if(text != null && text == 0)return true;
  return false;
}
function checkdate(text){
 if(text.length==0)
  return true;
 if(text.length!=10)
  return false;
 var date=new date(text.substring(0,4),text.substring(5,7),text.substring(8));
 if(date=="nan")
  return false;
 return true;
}
//@end region

//@region events
function validate(dosubmit)
{
 var valid = eval(validation);
 if (regexp != null)
 {
  var validpattern = new regexp("^("+regexp+")?$", "m");
  if (false == validpattern.test(value))
  {
   if (message == null)
    alert(title+" 输入格式不正确");
   else
    alert(message);
   this.focus();
   return false;
  }
 }
 if (valid & empty && isempty(value))  //判断是否为空
 {
  if (message == null)
   alert(title+" 不能为空");
  else
   alert(message);
  this.focus();
  return false;
 }
 if (valid & zero && iszero(value))
 {
  if (message == null)
   alert(title+" 不能为0");
  else
   alert(message);
  this.focus();
  return false;
 }
 if (valid & integer && !regint.test(value))
 {
  if (message == null)
   alert(title+" 必须为整数");
  else
   alert(message);
  this.focus();
  return false;
 }
 if (valid & float && !regfloat.test(value))
 {
  if (message == null)
   alert(title+" 必须为数值(整数或小数)");
  else
   alert(message);
  this.focus();
  return false;
 }

本文关键:文本输入框的客户端校验
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top