//###################################################################
//关于验证输入有效性
//###################################################################
function checkfckisnull(key,name)
{
try{
var oeditor=fckeditorapi.getinstance(key);
var content=oeditor.getxhtml(true);
content=content.replace(/ /g,"");
content=content.replace(/\s/g,"");
content=content.replace(/ /g,"");
content=content.replace(/
/g,"");
content=content.replace(/
<\/p>/g,"");
content=content.replace(/
<\/div>/g,"");
if(content==null||content==""){
alert(name+"不能为空!");
return false;
}
return true;
}
catch(e){
alert(name+ "输入出错!");
return false;
}
}
var el=function(id)
{
var col=document.getelementbyid(id);
if(col!=null)
return col;
else
{
var num=document.getelementsbytagname("input");
for(i=0;i=0)
{
return num[i];
}
}
num=document.getelementsbytagname("textarea");
for(i=0;i=0)
{
return num[i];
}
}
}
}
string.prototype.trim = function(){
return this.replace(/^\s*|\s*$/,'');
}
function checkipaddr(txt,name)
{
var str=el(txt).value;
if(str == "")
{
alert(name+"不能为空!");
return false;
}
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配ip地址的正则表达式
if(re.test(str))
{
if(regexp.$1*math.pow(255,3)+regexp.$2*math.pow(255,2)+regexp.$3*255+regexp.$4*1)
{
return true;
}
else
{
alert(name+"格式不正确!");
return false;
}
}
else
{
alert(name+"格式不正确!");
return false;
}
}
function islength(txt,name,len)
{
var str=el(txt).value;
if(str.length>len)
{
alert(name+"输入字数不能大于"+len+"字!");
return false;
}
else
{
return true;
}
}
function islengthshort(txt,name,len)
{
var str=el(txt).value;
if(str.length date.parse(edate.replace("-", "/")))
{
alert(startname+"要小于或等于"+endname);
return false;
}
else
{
return true;
}
}
//js比较日期大小
function isstartendtime(start,startname,end,endname)
{
var sdate=el(start).value;
var edate=el(end).value;
if (parsefloat(sdate.replace(":", ".")) >= parsefloat(edate.replace(":", ".")))
{
alert(startname+"要小于"+endname);
return false;
}
else
{
return true;
}
}
//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
function istel(txt,name)
{
var str=el(txt).value;
var pattern =/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
if(str!="" && (!pattern.exec(str)))
{
alert(name+"请输入正确的电话号码!");
return false;
}
else
{
return true;
}
}
function isusername(txt,name)
{
var str=el(txt).value;
var pattern =/^([\ue7c7-\ue7f3]|[\w])*$/;
if(str!="" && (!pattern.exec(str)))
{
alert(name+"请输入英文和数字!");
return false;
}
else
{
return true;
}
}
//邮件
function isemail(txt,name)
{
var str=el(txt).value;
var pattern =/^[a-za-z0-9_\-]{1,}@[a-za-z0-9_\-]{1,}\.[a-za-z0-9_\-.]{1,}$/;
if(str!="" && (!pattern.exec(str)))
{
alert(name+"请输入正确的邮箱地址!");
return false;
}
else
{
return true;
}
}
//校验手机号码:必须以数字开头,除数字外,可含有“-”
function ismobile(txt,name)
{
if(el(txt)==null) return true;
var str=el(txt).value;
var reg0 = /^13\d{9}$/;
var reg1 = /^15\d{9}$/;
var reg2 = /^18\d{9}$/;
var reg3 = /^1\d{10}$/;
var my = false;
if (reg0.test(str))my=true;
if (reg1.test(str))my=true;
if (reg2.test(str))my=true;
if (reg3.test(str))my=true;
if(str!="" && (!my))
{
alert(name);
return false;
}
else
{
return true;
}
}
//邮政编码
function ispostalcode(txt,name)
{
var str=el(txt).value;
var pattern =/^[0-9]{6}$/;
if(str!="" && (!pattern.exec(str)))
{
alert(name+"请输入正确的邮政编码!");
return false;
}
else
{
return true;
}
}
//校验日期
function isdate(txt,name)
{
var str=el(txt).value;
var pattern =/^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$/;
if(str!="" && (!pattern.exec(str)))
{
alert(name+"请输入正确的日期 “yyyy-mm-dd”!");
return false;
}
else
{
if(str!="" )
{
var year = str.substring(0,4);
if(year> "2100" || year< "1900")
{
alert(name+"请输入正确的年份!");
return false;
}
}
return true;
}
}
//校验时间
function istime(txt,name)
{
var str=el(txt).value;
var pattern =/^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/;
if(str!="" && (!pattern.exec(str)))
{
alert(name+"请输入正确的时间格式“09:00”!");
return false;
}
else
{
return true;
}
}
//验证网址
function isurl(txt,name)
{
var str=el(txt).value;
var strregex = "^(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@
+ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // ip形式的url- 199.194.52.184
+ "|" // 允许ip和domain(域名)
+ "([0-9a-z_!~*'()-]+\.)*" // 域名- www.
+"([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名
+ "[a-z]{2,6})" // first level domain- .com or .museum
+ "(:[0-9]{1,4})?" // 端口- :80
+ "((/?)|" // a slash isn't required if there is no file name
+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
var re=new regexp(strregex);
if(str=="")
{
return true;
}
else
{
if (str!="" && re.test(str))
{
return true;
}
else
{
alert(name+"请输入正确的网址 !")
return false;
}
}
}
//校验身份证号
function isidnumber(txt,name)
{
var str=el(txt).value;
if(str!="")
{
return isidcardno(str);
}
else
{
return true;
}
}
//这个可以验证15位和18位的身份证,并且包含生日和校验位的验证。
//如果有兴趣,还可以加上身份证所在地的验证,就是前6位有些数字合法有些数字不合法。
function isidcardno(num)
{
num = num.touppercase();
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符x。
if (!(/(^\d{15}$)|(^\d{17}([0-9]|x)$)/.test(num)))
{
alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或x。');
return false;
}
//校验位按照iso 7064:1983.mod 11-2的规定生成,x可以认为是数字10。
//下面分别分析出生日期和校验位
var len, re;
len = num.length;
if (len == 15)
{
re = new regexp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
var arrsplit = num.match(re);
//检查生日日期是否正确
var dtmbirth = new date('19' + arrsplit[2] + '/' + arrsplit[3] + '/' + arrsplit[4]);
var bgoodday;
bgoodday = (dtmbirth.getyear() == number(arrsplit[2])) && ((dtmbirth.getmonth() + 1) == number(arrsplit[3])) && (dtmbirth.getdate() == number(arrsplit[4]));
if (!bgoodday)
{
alert('输入的身份证号里出生日期不对!');
return false;
}
else
{
//将15位身份证转成18位
//校验位按照iso 7064:1983.mod 11-2的规定生成,x可以认为是数字10。
var arrint = new array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrch = new array('1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2');
var ntemp = 0, i;
num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
for(i = 0; i < 17; i ++)
{
ntemp += num.substr(i, 1) * arrint[i];
}
num += arrch[ntemp % 11];
//return num;
return true;
}
}
if (len == 18)
{
re = new regexp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|x)$/);
var arrsplit = num.match(re);
//检查生日日期是否正确
var dtmbirth = new date(arrsplit[2] + "/" + arrsplit[3] + "/" + arrsplit[4]);
var bgoodday;
bgoodday = (dtmbirth.getfullyear() == number(arrsplit[2])) && ((dtmbirth.getmonth() + 1) == number(arrsplit[3])) && (dtmbirth.getdate() == number(arrsplit[4]));
if (!bgoodday)
{
alert(dtmbirth.getyear());
alert(arrsplit[2]);
alert('输入的身份证号里出生日期不对!');
return false;
}
else
{
//检验18位身份证的校验码是否正确。
//校验位按照iso 7064:1983.mod 11-2的规定生成,x可以认为是数字10。
var valnum;
var arrint = new array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrch = new array('1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2');
var ntemp = 0, i;
for(i = 0; i < 17; i ++)
{
ntemp += num.substr(i, 1) * arrint[i];
}
valnum = arrch[ntemp % 11];
if (valnum != num.substr(17, 1))
{
alert('18位身份证的校验码不正确!应该为:' + valnum);
return false;
}
//return num;
return true;
}
}
return false;
}