JavaScript校验学习总结

JavaScript校验学习总结
//校验是否为空
function IsNotEmpty(con,desc,flag){
var org = deleteSpace(con.value);
if (org == ""){
alert(desc + "不能为空!");
if (flag == "1") {
con.focus();
}
return false;
} else {
return true;
}
}

//校验是否为正确的日期格式
function IsDate(sdate,desc){ //判断日期型是否满足格式yyyy-mm-dd(10位)

if (sdate.value == ""){
return true;
}
else{

if (sdate.value.length!=10){ //判断长度是否10位
alert(desc+"错误:日期型长度必须是10位!");
sdate.focus();
return false;
}
else{
var yyyy='';
var mm='';
var dd='';
s=/\d{4}[-]\d{2}[-]\d{2}/;
ok=s.exec(sdate.value);
if (ok==null){
alert(desc+"日期格式检测错误!\n必须是 'yyyy-mm-dd'格式输入!");
sdate.focus();
return(false);
}
else{
yyyy=sdate.value.substring(0,4);
mm=sdate.value.substring(5,7);
dd=sdate.value.substring(8,10);
if (yyyy<1900||yyyy>2130){
alert(desc+"Error: year beyond mark!\n请重新输入!");
sdate.focus();
return(false);
}
else if(mm<0||mm>12){
alert(desc+"Error: month beyond the mark!\n请重新输入!");
sdate.focus();
return(false);
}
else if(dd<0||dd>31){
alert(desc+"Error: day beyond the mark!\n请重新输入!");
return(false);
}
else return(true);
}
}
}
}

//校验是否为正确的日期时间格式
function IsDateTime(sdate,desc){ //判断日期型是否满足格式yyyy-mm-dd hh:mm:ss(19位)

if (sdate.value == ""){
return true;
}
else{

if (sdate.value.length!=19){ //判断长度是否10位
alert(desc+"错误:日期型时间长度必须是19位!");
sdate.focus();
return false;
}
else{
var yyyy = '';
var mm = '';
var dd = '';
var hh = '';
var mi = '';
var ss = '';
s=/\d{4}[-]\d{2}[-]\d{2}[\s]\d{2}[:]\d{2}[:]\d{2}/;
ok=s.exec(sdate.value);
if (ok==null){
alert(desc+"日期格式检测错误!\n必须是 'yyyy-mm-dd hh:mm:ss'格式输入!");
sdate.focus();
return(false);
}
else{
yyyy = sdate.value.substring(0,4);
mm = sdate.value.substring(5,7);
dd = sdate.value.substring(8,10);
hh = sdate.value.substring(11,13);
mi = sdate.value.substring(14,16);
ss = sdate.value.substring(17,19);
if (yyyy<1900||yyyy>2130){
alert(desc+"Error: year beyond mark!\n请重新输入!");
sdate.focus();
return(false);
}
else if(mm<0||mm>12){
alert(desc+"Error: month beyond the mark!\n请重新输入!");
sdate.focus();
return(false);
}
else if(dd<0||dd>31){
alert(desc+"Error: day beyond the mark!\n请重新输入!");
return(false);
}
else if(hh<0||hh>24){
alert(desc+"Error: hour beyond the mark!\n请重新输入!");
return(false);
}
else if(mi<0||mi>60){
alert(desc+"Error: minute beyond the mark!\n请重新输入!");
return(false);
}
else if(ss<0||ss>60){
alert(desc+"Error: second beyond the mark!\n请重新输入!");
return(false);
}
else return(true);
}
}
}
}

//校验是否数值
function IsNumber(snum,desc){ //判断是否合法数字,比如:6.1,100 合法 ;。34,100。 不合法
if (snum.value == ""){
return false;
}
else{
s1=/[^0-9.]+/;
if (snum.value.length == 1){
s2=/[0-9]+/;
}
else{
s2=/[0-9]+[.]?[0-9]+/;
}
s3=/[.]+\w*[.]+/;
ifpoint1=snum.value.substring(snum.value.length-1,snum.value.length);
ifpoint2=snum.value.substring(0,1);
ifpoint3=snum.value.substring(1,2);

if (ifpoint1=="."||ifpoint2=="."){
alert(desc+"错误:数字头不能是'.'");
return false;
}
if (ifpoint2=="-"||ifpoint3=="-"){
alert(desc+"错误:不能为负值");
return false;
}
if (ifpoint2=="0"&&ifpoint3=="-"){
alert(desc+"错误:非法数值");
return false;
}
ok1=s1.exec(snum.value);
ok2=s2.exec(snum.value);
ok3=s3.exec(snum.value);
if ((ok1==null)&&(ok2!=null)&&(ok3==null))
return true
else{
alert(desc+"非法数字!\n请重新输入!")
return false;
}
}
}

//校验是否有标记被选择
function IsSelected(theform,desc){
var ilength = theform.elements.length;
var count = 0;
for (i=0;i<ilength;i++){
if (theform.elements[i].type=="checkbox" && theform.elements[i].checked==true){
count++;
}
}
if (count == 0){
alert("对不起,您没有选择"+desc+"!");
return false;
}
else return true;
}

//校验是否有标记被选择
function IsChecked(theform,desc){
var ilength = theform.elements.length;
var count = 0;
for (i=0;i<ilength;i++){
if (theform.elements[i].type=="radio" && theform.elements[i].checked==true){
count++;
}
}
if (count == 0){
alert("对不起,您没有选择"+desc+"!");
return false;
}
else return true;
}

//下拉列表判断
function IsSelectedField(fieldstr,desc){
if(fieldstr.selectedIndex>-1) return true;
else{
alert("对不起,您没有选择"+desc+"!");
return false;
}
}

//校验结束日期是否大于开始日期
function IsHighDate(fieldstr,desc){
if (!IsDate(fieldstr,desc)) return false;
else{
var sedname = fieldstr.name;
var sedvalue = fieldstr.value;
var iedlength = sedname.length;
var si = sedname.substring(iedlength-1,iedlength);
var sstname = "sd"+si;
var s = "document.form3."+sstname+".value";
var sstvalue = eval(s);
if (sstvalue == "") {
return true;
}
else if((sedvalue > sstvalue) || (sedvalue == sstvalue)){
return true;
}
else{
alert(desc+"应大于开始时间");
fieldstr.focus();
return false;
}
}
}

//日期输入判断
function IsBiggerDate(bdate,edate){
if(edate.value>=bdate.value){
return true;
}else{
alert("终止日期必须大于开始日期!");
bdate.focus();
return false;
}
}

//校验表单中动态数组大小比较
function IsDiaHigh(stheform,ilength,sbstrm,sbdesc,sestrm,sedesc,sflagm){
var i=0;
for (i=0;i<ilength;i++){
var tempflagm=sflagm+i;
var tempflagv=eval(stheform+"."+tempflagm+".checked");
if (tempflagv == true){
var tempbstrm=sbstrm+i;
var tempestrm=sestrm+i;
var tempbstrv=eval(stheform+"."+tempbstrm+".value");
var tempestrv=eval(stheform+"."+tempestrm+".value");
if (tempbstrv>tempestrv){
var j=i+1;
alert("第"+j+"行输入有误,"+sbdesc+"不应大于"+sedesc);
return false;
}
}
}
return true;
}

//表单判断
function IsOneOnly(stheform,ilength,sfieldm,sfdesc,sfield2m,sf2desc,sfvalm,descv,sflagm){
var i = 0;
var count = 0;
for (i=0;i<ilength;i++){
var j = i+1;
var tempflagm = sflagm+i;
var tempflagv = eval(stheform+"."+tempflagm+".checked");
var tempfieldm = sfieldm+i;
var tempfieldv = eval(stheform+"."+tempfieldm+".value");
if ((tempflagv == true) && (tempfieldv == "0")){
count++;
var tempfield2m = sfield2m+i;
var tempfield2v = eval(stheform+"."+tempfield2m+".value");
var tempfvalm = sfvalm+i;
var tempfvalv = eval(stheform+"."+tempfvalm+".value");
if (tempfield2v == ""){
alert("第"+j+"行的"+sf2desc+"不能为空!");
return false;
}
else{
var truefield2v = parseFloat(tempfield2v);
if (tempfvalv == ""){
var truefvalv = 0;
}
else{
var truefvalv = parseFloat(tempfvalv);

}
if (truefield2v > truefvalv){
alert("第"+j+"行的"+sf2desc+"应大于0且小于当前"+descv+"("+truefvalv+")!");
return false;
}
}
}
}
if (count != 1){
alert("原商品有且只能有一种,请检查您的输入!");
return false;
}
return true;
}

//校验当前域值是否小于某一值(>0)
function IsLower(fieldstr,descf,dvalue,descv){
if ((!IsEmpty(fieldstr,descf,"1")) || (!IsInteger(fieldstr,descf))) return false;
else{
var thisvalue = parseFloat(fieldstr.value);
if ((thisvalue == 0) || (thisvalue > dvalue)){
alert(descf+"应大于0且小于当前"+descv+"("+dvalue+")!");
fieldstr.focus();
return false;
}
return true;
}
}

//数字判断
function IsHigh(lfield,hfield,ldesc,hdesc){
var ltempval = lfield.value;
var htempval = hfield.value;
if (ltempval > htempval){
alert(hdesc+"不小于"+ldesc);
return false;
}
else{
return true;
}
}

//数字输入
function IsNumHigh(lfield,hnum,ldesc,hdesc){
if (!IsNumber(lfield,ldesc)){
alert(ldesc+"不是数字,请检查您的输入!");
lfield.focus();
return false;
}
else{
var lnum = parseFloat(lfield.value);
if (lnum < hnum){
alert(ldesc+"的值应大于"+hdesc+hnum);
lfield.focus();
return false;
}
reutrn true;
}
}

//判断长度
function IsOverLen(fieldstr,ilength,desc){
if (fieldstr.value == "") return true;
else{
var itemplen = fieldstr.value.length;
if (itemplen > ilength){
alert(desc+"的长度不应大于"+ilength);
fieldstr.focus;
return false;
}
return true;
}
}

//判断下一步操作
function IsNext(icount,desc){
if (icount > 0){
return true;
}
else{
alert("对不起,文中没有"+desc+",不能进行下一步操作!");
return false;
}
}

//判断时间
function IsTime(ctime,desc){
if (ctime.value.length == 0) return true;
var s = /^(([0-9]|[01][0-9]|2[0-3])(:([0-9]|[0-5][0-9])){0,2}|(0?[0-9]|1[0-1])(:([0-9]|[0-5][0-9])){0,2}\s?[aApP][mM])?$/;
var ok = exec(ctime.value);
if(ok!=null){
return true;
}
else{
alert(desc+"非法时间!\n请重新输入!");
ctime.focus();
return false;
}
}

//字符串多余空格
function StrTrim(input){
var s=/(\s*)([\s*\S*]*)(\S+)/;
s.exec(input)
if(s.exec(input)==null){return ""}
return RegExp.$2+RegExp.$3
}

//判断是否为正数
function IsVNumber(snum,desc){
if (snum == ""){
alert("请输入"+desc);
return false;
}
else{
s1=/[^0-9.]+/;
if (snum.length == 1){
s2=/[0-9]+/;
}
else{
s2=/[0-9]+[.]?[0-9]+/;
}
s3=/[.]+\w*[.]+/;
ifpoint1=snum.substring(snum.length-1,snum.length);
ifpoint2=snum.substring(0,1);
if (ifpoint1=="."||ifpoint2=="."){
window.alert(desc+"错误:数字头不能是'.'");
return(false);
}
ok1=s1.exec(snum);
ok2=s2.exec(snum);
ok3=s3.exec(snum);
if ((ok1==null)&&(ok2!=null)&&(ok3==null)){
var tempnum = parseFloat(snum);
if (tempnum > 0)
return true;
else{
alert(desc+"应大于0");
return false;
}
}
else{
alert(desc+"非法数字!\n请重新输入!");
return false;
}
}
}

//校验数量是否为整数(正整数,负整数,0)
function IsNumberInt(snum,desc)
{
if (snum.value == "")
{
return false;
}
else
{
s1=/[^0-9]+/;
s2=/[a-z]+/;
s3=/[\-][0-9]+/;
s4=/[.]+/;
ifpoint1=snum.value.substring(snum.value.length-1,snum.value.length);
ifpoint2=snum.value.substring(0,1);
ifpoint3=snum.value.substring(1,2);

if (ifpoint1=="."||ifpoint2==".")
{
alert(desc+"错误:数字头不能是'.'");
return false;
}
if (ifpoint1=="-"&&ifpoint2=="-")
{
alert(desc+"输入数据错误:'-'");
return false;
}

ok1=s1.exec(snum.value);
ok2=s2.exec(snum.value);
ok3=s3.exec(snum.value);
ok4=s4.exec(snum.value);
if ((ok1==null)) //0,正整数
{
return true;
}
else
{
if (ok4==null&&ok2==null&&ok3!=null&&ifpoint2=="-"&&ifpoint3!="-")
{
//alert(desc+"为负整数!!!!");
return true;
}
else
{
if(ok2!=null)
{
alert(desc+"非法数字!\n请重新输入!");
}
if (ok4!=null)
{
alert(desc+"数量应该为整数!\n请重新输入!");
}
return false;
}
}
}
}

//校验是否为正整数
function IsInt(snum,desc)
{
if (snum.value == ""){
return false;
}
else{
s1=/[^0-9]+/;
ifpoint1=snum.value.substring(0,1);
if (ifpoint1=="0"||ifpoint1==".")
{
alert(desc+"非正整数!\n请重新输入!");
return false;
}
ok1=s1.exec(snum.value);

if ((ok1==null))
{ return true; }
else{
alert(desc+"非正整数!\n请重新输入!");
return false;
}
}
}

//判断是否为正整数和0
function IsInteger(snum,desc){
if (snum.value == "")
{
return false;
}

else{
s = /[0-9]+/;
s1=/[^0-9]+/;
s2=/[.]+/;

ok = s.exec(snum.value);
ok1 = s1.exec(snum.value);
ok2 = s2.exec(snum.value);


ifpoint1=snum.value.substring(0,1);
ifpoint2=snum.value.substring(1,2);
if (ifpoint1=="0"&&ifpoint2=="0")
{
alert(desc+"输入数据错误");
snum.focus();
return false;
}
if (ifpoint1=="-")
{
alert(desc+"输入数据错误");
snum.focus();
return false;
}
if (ifpoint1=="0"&&snum.value.length > 1)
{
alert(desc+"输入数据错误");
snum.focus();
return false;
}
if(ok2!=null){
alert(desc+"输入数据非整数!!");
snum.focus();
return false;


}
if(ok!=null&&ok1==null){
var inum = parseInt(snum.value);
if(inum>2500000000){
alert(desc+"数据太大,超出范围!\n请重新输入!");
snum.focus();
}
else
return true;
}
else{
alert(desc+"非法数字!\n请重新输入!");
snum.focus();
return false;
}
}
}

//校验数量是否为正整数
function IsNumberNotNav(snum,desc){
if (snum.value == "")
{
return false;
}
else
{
s1=/[^0-9]+/;
s2=/[a-z]+/;
s3=/[\-][0-9]+/;
s4=/[.]+/;
ifpoint1=snum.value.substring(snum.value.length-1,snum.value.length);
ifpoint2=snum.value.substring(0,1);
ifpoint3=snum.value.substring(1,2);

if (ifpoint1=="."||ifpoint2==".")
{
alert(desc+"错误:数字头不能是'.'");
snum.focus();
return(false);
}

ok1=s1.exec(snum.value);
ok2=s2.exec(snum.value);
ok3=s3.exec(snum.value);
ok4=s4.exec(snum.value);
if ((ok1==null)) // (ok2!=null))||(ok3!=null))
{
return true;
}
else
{
if (ok4==null&&ok2==null&&ok3!=null&&ifpoint2=="-"&&ifpoint3!="-")
{
alert(desc+"不能为负数!");
snum.focus();
return false;
}
else
{
if(ok2!=null)
{
alert(desc+"非法数字!\n请重新输入!");
snum.focus();
}
if (ok4!=null)
{
alert(desc+"应该为整数!\n请重新输入!");
snum.focus();
}
return false;
}
}
}
}

//判断输入的是否为数字(onkeyPress="return IsJustNum(this)")
function IsJustNum(con) {
if (event.keyCode>57||event.keyCode<48) {
return false;
}
s=/[^0-9]+/;
ok = s.exec(con.value);
if (ok==null) {
return true;
} else {
alert("输入非法字符!\n请重新输入!");
con.value = "";
con.focus();
return false;
}
}

/**
*当失去焦点并改变内容时判断输入(οnchange="IsJustNumOnCh(this)")
*/
function IsJustNumOnCh(con) {
s=/[^0-9]+/;
ok = s.exec(con.value);
if (ok==null) {
return true;
} else {
alert("输入非法字符!\n请重新输入!");
con.value = "";
con.focus();
return false;
}
}

*当失去焦点并改变内容时判断输入是否满足时间格式(οnchange="IsValidTimeOnCh(this,flag)")
* by
* flag=1--hour;flag=2--minute
*/
function IsValidTimeOnCh(con,flag){
s=/[^0-9]+/;
ok = s.exec(con.value);
if (ok==null)
{
if(flag==1)
{
if(con.value>=24 || con.value<0)
{
alert("请保证输入的小时数小于24");
con.focus();
return false;
}
}
else if(flag==2)
{
if(con.value>=60 || con.value<0)
{
alert("请保证输入的分钟数小于60");
return false;
}
}

return true;
}
else
{
alert("输入非法字符!\n请重新输入!");
con.value = "";
con.focus();
return false;
}
}

//判断输入的是否为数字(onkeyPress="return IsJustNum(this)")
function IsValidTime(con,flag) {
if (event.keyCode>57||event.keyCode<48)
{
return false;
}
s=/[^0-9]+/;
ok = s.exec(con.value);
if (ok==null)
{
return true;
}
else
{
alert("输入非法字符!\n请重新输入!");
con.value = "";
con.focus();
return false;
}
}


//去除字符串前后空格
function deleteSpace(orgString) {
var org = orgString.toString();
var len = org.length;
var offset = 0;
while (offset<len&&org.charAt(offset)==" ") {
offset++;
}
while (offset<len&&org.charAt(len-1)==" ") {
len--;
}
return (offset>0||len<org.length)? org.substring(offset,len):org;
}


//判断是否为空
function IsNull(con) {
var org = deleteSpace(con.value);
if (org == ""){
alert("输入不能为空!");
con.focus();
return false;
} else {
return true;
}
}


* 判断输入是否为(HH:MM)时间格式
* @param org 原对象
* @param flag 是否输出错误信息(alert),并定位焦点
*/
function IsCorrectTime(org, flag) {
if (deleteSpace(org.value).length!=5) {
if (flag) {
alert("正确的时间格式为(HH:MM),长度为5位");
org.focus();
}
return false;
}
s = /[0-9][0-9][:][0-9][0-9]/;
ok = s.exec(org.value);
if (ok==null) {
if (flag) {
alert("输入非法字符!\n正确的时间格式为(HH:MM),长度为5位!");
org.focus();
}
return false;
}
var HH = org.value.substring(0,2);
var MM = org.value.substring(3,5);
if (HH<0||HH>23) {
if (flag) {
alert("输入的小时不正确,请重新输入!");
org.focus();
}
return false;
}
if (MM<0||MM>59) {
if (flag) {
alert("输入的分钟不正确,请重新输入!");
org.focus();
}
return false;
}
return true;
}

/**
* 判断输入是否为(YYYYMM)日期格式
* @param org 原对象
* @param flag 是否输出错误信息(alert),并定位焦点
*/
function IsCorrectDateMonth(org, flag) {
if (deleteSpace(org.value).length!=6) {
if (flag) {
alert("正确的日期格式为(YYYYMM),长度为6位!");
org.focus();
}
return false;
}
s = /[^0-9]+/;
ok = s.exec(org.value);
if (ok!=null) {
if (flag) {
alert("输入非法字符!\n正确的日期格式为(YYYYMM),长度为6位!");
org.focus();
}
return false;
}
var yyyy = org.value.substring(0,4);
var mm = org.value.substring(4,6);
if (yyyy<1900||yyyy>2130){
if (flag) {
alert("输入的年份不正确,请重新输入!");
org.focus();
}
return false;
}
else if(mm<1||mm>12){
if (flag) {
alert("输入的月份不正确,请重新输入!");
org.focus();
}
return false;
}
return true;
}


/*显示隐藏文本字段*/
function codeFold(tbl, divid)
{
butt = tbl.rows[0].cells[1];
with (document.getElementById(divid).style){
if(visibility == "visible"||visibility =='')
{
visibility ="hidden";
butt.innerText = "▼";
}
else {
visibility = "visible";
butt.innerText = "▲";
}
}
}

/*选择或取消所有的Checkbox*/
function doSelectAll(obj)
{
var name=obj.name;
for (i=0;i<document.forms[0].elements[name].length;i++){
document.forms[0].elements[name][i].checked = obj.checked;
}

}

//邮件判断
function e_mail(){
var e=document.form;
var reg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
if(!reg.exec(e.email.value)){
alert("email输入不正确,请检查输入!");
e.date_t.focus();
return false;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值