通用数据校验函数

galaxypilot galaxypilot 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
////////////////////////////////////////////////////////////////////////////////////////////
// //
// 通用数据校验函数,调用该函数需要传两个对像参数 //
// 表单需要定义三个扩展属性:nullable,datatype //
// nullable属性用来说明该表单是否可以为空,y——可以为空,n——不能为空 //
// datatype属性用来说明该表单的数据类型,n——整型,m——浮点(例ma.b), //
// f——固定长度整数,d——日期型 //
// cname属性用来定义在数据校验失败时提示信息中出现的字出错字段名称 //
// maxlength的取值应该和数据库对应字段长度一直或小于 //
// //
// 最后修改日期:2003-12-02 By GalaxyP //
// //
////////////////////////////////////////////////////////////////////////////////////////////

var msg="";
/* 取得字符串的字节长度 */
function strlen(str)
{
var i;
var len;
len = 0;
for (i=0;i<str.length;i++)
{
if (str.charCodeAt(i)>255) len+=2; else len++;
}
return len;
}
/* 检测字符串是否为空*/
function isnull(str)
{
var i;
for (i=0;i<str.length;i++)
{
if (str.charAt(i)!=' ') return false;
}
return true;
}

/* 检测字符串是否全为数字 */
function isnumber(str)
{
var number_chars = "1234567890";
var i;
for (i=0;i<str.length;i++)
{
if (number_chars.indexOf(str.charAt(i))==-1) return false;
}
return true;
}
/* 检测字符串是否是指点的数点数 */
function isfloat(str,typ){
var number_chars = "1234567890.";
var i;
for (i=0;i<str.length;i++){
if (number_chars.indexOf(str.charAt(i))==-1){
msg="这里应该是数字;";
return false;
}
}
if (str.length==0)
return true;
var len=typ.length;
var po=typ.indexOf(".");
if (po==-1){
intlen=typ.substring(1,len);
floatlen="0";
}
else{
var intlen=typ.substring(1,po);
var floatlen=typ.substring(po+1,len);
}

var len=str.length;
var po=str.indexOf(".");
if (po==-1){
ints=str.substring(0,len);
floats="0";
}
else{
var ints=str.substring(0,po);
var floats=str.substring(po+1,len);
}
if (intlen<ints.length){
msg="整数位超过长度;";
return false;
}
if (floatlen<floats.length){
msg="小数位超过长度;";
return false;
}
return true;
}
/* 检测字符串是否是有效日期 */
String.prototype.isDate=function(){
var re=/^(\d{1,4})(-|\/|\.)(\d{1,2})\2(\d{1,2})$/;
var r=this.match(re);
if(r==null) return false;
var d=new Date(r[1],r[3]-1,r[4]);
return (d.getFullYear()==r[1]&&d.getMonth()==r[3]-1&&d.getDate()==r[4]);
}
/*检测数据类型*/
String.prototype.isType=function(){
var re=/^\m((\d+)*)((\.\d+)*)$/;
var r=this.match(re);
if (r != null)
return true;
}

/* 检测字符串是否满足要求 */
function verify(obj,flag)
{
var nam,val,len,max,nulll,typee,bool,str,boo,typ;
str="";
bool=true;
boo=true
for (i=0;i<obj.elements.length;i++)
{
if (!bool)
break;
max=obj.elements[i].maxLength;
val=(obj.elements[i].value);
nam=(obj.elements[i].name);
typee=obj.elements[i].datatype;
if (nam=="editmode" && flag)
{
break;
}
if (nam !="editmode" && !flag && boo)
continue;
else
boo=false;
len=strlen(val);
if (typee!=null && typee!="undefined")
{
if (typee.isType()){
typ=typee;
typee="m";
max=max+1;
}
}

if (len>max)
{
str="【"+obj.elements[i].cname+"】"+"超过限制长度;";
obj.elements[i].focus();
obj.elements[i].select();
bool=false;
alert(str);
break;
}
nulll=obj.elements[i].nullable;
if (nulll=="n")
{
if (isnull(val))
{
str="【"+obj.elements[i].cname+"】"+"不能为空;";
obj.elements[i].focus();
obj.elements[i].select();
bool=false;
alert(str);
break;
}
}

switch(typee)
{
case "n" : if (isnumber(val)==false)
{
str="【"+obj.elements[i].cname+"】"+"应该是数字;";
obj.elements[i].focus();
obj.elements[i].select();
bool=false;
alert(str);
}
break;
case "m" : if (isfloat(val,typ)==false)
{
str="【"+obj.elements[i].cname+"】"+"数字的格式不正确"+"——"+msg;
obj.elements[i].focus();
obj.elements[i].select();
bool=false;
alert(str);
}
break;
case "f" : if (isnumber(val)==false || (max!=len && len!=""))
{
str="【"+obj.elements[i].cname+"】"+"不是数字或长度无效;";
obj.elements[i].focus();
obj.elements[i].select();
bool=false;
alert(str);
}
break;

case "d" : if (! val.isDate() && val!="")
{
str="【"+obj.elements[i].cname+"】"+"日期格式无效;";
obj.elements[i].focus();
obj.elements[i].select();
bool=false;
alert(str);
}
break;
//在这里可以加入其它数据类型校验
default : break;
}
}
return bool;
}
/*回车转换焦点*/
function keyenter(obj,obje)
{
var keycd,i,nam,ii,bool;
keycd=event.keyCode;
ii=obj.elements.length;
nam=obje.name;
bool=true;
if (keycd==13)
{
for (i=0;i<obj.elements.length;i++)
{
if (bool)
if (nam==(obj.elements[i].name))
{
bool=false;
if (i+1<ii)
{
obj.elements[i + 1].focus();
}
}
}
}
}
本来打算把所有需要校验的类型加进去再贴出来,但最近较忙,各位用的话自己加吧!上次跟了贴子说给一位朋友发,但也没发成,在这里表示谦意!
...全文

相关推荐

js常用工具函数-通用格式化时间、字符串验证-验证邮箱、手机号、电话号码、url地址、严格校验身份证号码,判断数据类型、数组随机洗牌算法、检测密码强度等等

JS常用工具函数(压缩包中含有MD文件可自行查看)--包含:通用格式化时间、字符串验证-验证邮箱、手机号、电话号码、url地址、严格校验身份证号码,判断数据类型-是否是字符串、数字、Boolean、函数、对象、数组Array、null、undefined、时间对象Date、正则对象、错误对象、Symbol函数、Promise对象、Set对象,判断是否是引用类型,浮点数运算(解决计算机运算浮点数精度丢失问题),数组随机洗牌算法,随机整数范围,将阿拉伯数字翻译成中文的大写数字,将数字转换为大写金额,判断一个元素是否在数组中,数组删除其中一个元素,求数组中的最大值,求数组中的最小值,数组中的值求和,去除字符串中的空格(1-所有空格 2-前后空格 3-前空格 4-后空格),字符转换(1:首字母大写 2:首字母小写 3:大小写转换 4:全部大写 5:全部小写),检测密码强度 等级1-5,在字符串中插入新字符串,16进制颜色值转rgba颜色值字符串。

mine_king

CRC校验通用代码.pdf

CRC校验通用代码.pdf

qq_58157133

相关键几乎通用的哈希函数:定义,构造和应用

相关键几乎通用的哈希函数:定义,构造和应用

weixin_38663701

JS校验脚本

NULL 博文链接:https://lsz1023-126-com.iteye.com/blog/2087425

weixin_38669628

通用方法库项目_提供开发过程中常用的通用函数与工具方法以避免重复劳动_包含标准CRC校验算法实现_日期时间处理工具如时间戳与日期字符串相互转换_文件操作辅助函数如读写与格式校验_字.zip

通用方法库项目_提供开发过程中常用的通用函数与工具方法以避免重复劳动_包含标准CRC校验算法实现_日期时间处理工具如时间戳与日期字符串相互转换_文件操作辅助函数如读写与格式校验_字.zip

A20250FSAF
评论 2
收藏 已收藏
分享
返回顶部
galaxypilot
JavaScript 87,984 成员 224,681 内容