var page_validationver = "125";
var page_isvalid = true;
var page_blocksubmit = false;
var msg="";
///验证入口
function page_clientvalidate()
{
var i;
for (i = 0; i < page_validators.length; i++) {
if(!validatorvalidate(page_validators[i]))
{
msgbox(page_validators[i]);
event.returnvalue = false;
return false;
}
}
}
function msgbox(val)
{
if(msg!="")
{
msg="(错误提示:"+msg+")";
}
alert(validatorerrormsg(val)+"\r\n"+msg);
}
///单个验证
function validatorvalidate(val) {
var control = validatorcontrol(val.controltovalidate);
value=validatorgetvalue(control);
if(!maxlength(val.maxlength,value)) return false;
flag=true;
if(value=="")
{
control.focus();
msg="文本框不能为空!";
return val.allownull=="true";
}
var datatype = val.datatype;
if(datatype=="empty")
{
flag= true;
}
else if(datatype =="string")
{
flag = isstring(value);
}
else if(datatype =="letter")
{
flag = isletter(value);
}
else if (datatype == "stringinteger") {
flag= isstringinteger(value);
}
else if (datatype == "integer") {
flag= isinteger(value);
}
else if(datatype =="chinese")
{
flag = ischinese(value);
}
else if(datatype =="unsignintger")
{
flag = isunsignintger(value);
}
else if(datatype == "double") {
flag = isdouble(value);
}
else if(datatype =="email")
{
flag = isemail(value);
}
else if(datatype =="ip")
{
flag = isip(value);
}
else if(datatype =="phone")
{
flag = isphone(value);
}
else if(datatype =="zip")
{
flag = iszip(value);
}
else if (datatype == "currency") {
flag = iscurrency(value);
}
else if (datatype == "date") {
flag = isdate(value);
}
else if(datatype =="time")
{
flag = istime(value);
}
else if (datatype == "datetime") {
flag = isdatetime(value);
}
else
{
flag = isother(value);
}
if(flag==false)
{
control.focus();
}
return flag;
}
///获取验证的错误消息
function validatorerrormsg(val)
{
return val.errormessage;
}
///获取控件对象
function validatorcontrol(id)
{
var control;
control = document.all[id];
return control
}
function validatorgetvalue(control) {
if (typeof(control.value) == "string") {
return control.value;
}
if (typeof(control.tagname) == "undefined" && typeof(control.length) == "number") {
var j;
for (j=0; j < control.length; j++) {
var inner = control[j];
if (typeof(inner.value) == "string" && (inner.type != "radio" || inner.status == true)) {
return inner.value;
}
}
}
else {
return validatorgetvaluerecursive(control);
}
return "";
}
function validatorgetvaluerecursive(control)
{
if (typeof(control.value) == "string" && (control.type != "radio" || control.status == true)) {
return control.value;
}
var i, val;
for (i = 0; i<control.children.length; i++) {
val = validatorgetvaluerecursive(control.children[i]);
if (val != "") return val;
}
return "";
}
function isinteger(val)
{
reg=/^[-+]?\d*$/;
msg="请输入阿拉伯数字!";
return check(val,reg);
}
function isdouble(val)
{
reg=/^[-+]?\d+(\.\d+)?$/;
msg="请输入数字,如:5.63";
return check(val,reg);
}
function isemail(val)
{
reg=/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
msg="请输入合法的email地址";
return check(val,reg);
}
function iscurrency(val)
{
reg=/^[$¥]?(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$/;
msg="请输入金额,或以美元或人民币符号开头的数字,小数保留两位,如:¥1,000.00";
return check(val,reg);
}
function isstring(val)
{
//reg=/^[a-za-z0-9_]+$/;
reg=/^\w+$/;
msg="请输入规则字符串!";
return check(val,reg);
}
function isstringinteger(val)
{
reg=/^[a-za-z][0-9]+$/;
msg="请输入首位是字母其他为数字的字符串,如:a0001";
return check(val,reg);
}
function iszip(val)
{
reg=/^\d{6}$/;
msg="请输入邮政编码,如:518000";
return check(val,reg);
}
function isip(val)
{
reg=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
var r = val.match(reg);
msg="请输入合法的ip地址,每段是0-255的整数!";
if(r==null) return false;
if(r[1]<256 && r[2] <256 && r[3]<256 && r[4]<256)
return true;
return false;
}
function isphone(val)
{
//reg=/((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}/;
reg=/^[1-9]\d{1,3}-\d{7,8}$|^[1-9]\d{9,10}$|^[1-9]\d{1,3}-\d{7,8}-\d{1,4}$/;
msg="请输入电话号码,如755-88888888-1234!";
return check(val,reg);
}
function isunsignintger(val)
{
reg=/^\d*$/;
msg="请输入阿拉伯数字!";
return check(val,reg);
}
function isletter(val)
{
reg=/^[a-za-z]+$/;
msg="请输入英文字母!";
return check(val,reg);
}
function ischinese(val)
{
reg=/^[\w\u00ff-\ufffd]+$/ ///[^(!-\/)(\:-@)(\][-\)]+$/g;
msg="请输入字!";
return check(val,reg);
}
function isdate(val)
{
//reg=/([1-9][0-9]{3})-([(0|1) 0-9]{2})-([0-9]{2})/;
reg=/^(\d{4})-(\d{2})-(\d{2})$/
var r = val.match(reg);
if(r==null)return false;
r[2]=r[2]-1;
var d= new date(r[1], r[2],r[3]);
if(d.getdate()!=r[3])
{
msg="日期格式错误!";
return false;
}
if(d.getmonth()!=r[2])
{
msg="月份格式错误!";
return false;
}
if(d.getfullyear()!=r[1])
{
msg="年份格式错误!";
return false;
}
return true;
}
function istime(val)
{
reg=/^((20|21|22|23|[0-1]\d)\:[0-5][0-9])(\:[0-5][0-9])?$/
msg="时间格式输入错误,如:12:59或15:12:00";
return check(val,reg);
}
function isdatetime(val)
{
if(val.length<11){msg="日期时间长度不匹配!"; return false;}
if(isdate(val.substring(0,10)))
{
return istime(val.substring(11,val.length));
}
return false;
}
function isother(value)
{
return true;
}
function check(val,reg)
{
if(reg.test(val))
{
return true;
}
return false;
}
function maxlength(maxlen,val)
{
if(maxlen==0) return true;
mylen = strlength(val);
if(mylen<=parseint( maxlen))
{
return true;
}
msg="输入的长度实际是"+mylen+",不能超过"+maxlen;
return false;
}
//判断字符长度 dev-club
function strlength(str)
{
var l=str.length;
var n=l
for (var i=0;i<l;i++)
{
if (str.charcodeat(i)<0||str.charcodeat(i)>255) n++
}
return n
}
