/*** 取得字符串的字节长度*/
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;
}
/** 判断是否为数字,是则返回true,否则返回false*/
function f_check_number(obj){
if (/^/d+$/.test(obj.value)) {
return true;
}else{
f_alert(obj,"请输入数字");
return false;
}
}
/** 判断是否为自然数,是则返回true,否则返回false*/
function f_check_naturalnumber(obj){
var s = obj.value;
if (/^[0-9]+$/.test( s ) && (s > 0)) {
return true;
}else{
f_alert(obj,"请输入自然数");
return false;
}
}
/** 判断是否为整数,是则返回true,否则返回false*/
function f_check_integer(obj){
if (/^(/+|-)?/d+$/.test( obj.value )){
return true;
}else{
f_alert(obj,"请输入整数");
return false;
}
}
/** 判断是否为实数,是则返回true,否则返回false*/
function f_check_float(obj){
if (/^(/+|-)?/d+($|/./d+$)/.test( obj.value ))
{
return true;
}
else
{
f_alert(obj,"请输入实数");
return false;
}
}
/** 校验数字的长度和精度*/
function f_check_double(obj){
var numreg;
var value = obj.value;
var strvaluetemp, strint, strdec;
var dtype = obj.eos_datatype;
var pos_dtype = dtype.substring(dtype.indexof("(")+1,dtype.indexof(")")).split(",");
var len = pos_dtype[0], prec = pos_dtype[1];
try
{
numreg =/[/-]/;
strvaluetemp = value.replace(numreg, "");
numreg =/[/+]/;
strvaluetemp = strvaluetemp.replace(numreg, "");
//整数
if(prec==0){
numreg =/[/.]/;
if(numreg.test(value) == true){
f_alert(obj, "输入必须为整数类型");
return false;
}
}
if(strvaluetemp.indexof(".") < 0 ){
if(strvaluetemp.length >( len - prec)){
f_alert(obj, "整数位不能超过"+ (len - prec) +"位");
return false;
}
}else{
strint = strvaluetemp.substr( 0, strvaluetemp.indexof(".") );
if(strint.length >( len - prec)){
f_alert(obj, "整数位不能超过"+ (len - prec) +"位");
return false;
}
strdec = strvaluetemp.substr( (strvaluetemp.indexof(".")+1), strvaluetemp.length );
if(strdec.length > prec){
f_alert(obj, "小数位不能超过"+ prec +"位");
return false;
}
}
return true;
}catch(e){
alert("in f_check_double = " + e);
return false;
}
}
/** 校验数字的最小最大值* 返回bool*/
function f_check_interval(obj){
var value = parsefloat(obj.value);
var dtype = obj.eos_datatype;
var pos_dtype = dtype.substring(dtype.indexof("(")+1,dtype.indexof(")")).split(",");
var minlimit = pos_dtype[0];
var maxlimit = pos_dtype[1];
var minval = parsefloat(pos_dtype[0]);
var maxval = parsefloat(pos_dtype[1]);
if(isnan(value))
{
f_alert(obj, "值必须为数字");
return false;
}
if((isnan(minval) && (minlimit != "-")) || (isnan(maxval) && (maxlimit != "+")))
{
f_alert(obj, "边界值必须为数字或-、+");
return false;
}
if(minlimit == "-" && !isnan(maxval))
{
if(value > maxval)
{
f_alert(obj, "值不能超过" + maxval);
return false;
}
}
if(!isnan(minval) && maxlimit == "+")
{
if(value < minval)
{
f_alert(obj, "值不能小于" + minval);
return false;
}
}
if(!isnan(minval) && !isnan(maxval))
{
if(minval > maxval)
{
f_alert(obj, "起始值" + minval + "不能大于终止值" + maxval);
}else
{
if(!(value <= maxval && value >= minval))
{
f_alert(obj, "值应该在" + minval + "和" + maxval + "之间");
return false;
}
}
}
return true;
}
/*
用途:检查输入字符串是否只由汉字组成
如果通过验证返回true,否则返回false*/
function f_check_zh(obj){
if (/^[/u4e00-/u9fa5]+$/.test(obj.value)) {
return true;
}
f_alert(obj,"请输入汉字");
return false;
}
/** 判断是否为小写英文字母,是则返回true,否则返回false*/
function f_check_lowercase(obj){
if (/^[a-z]+$/.test( obj.value ))
{
return true;
}
f_alert(obj,"请输入小写英文字母");
return false;
}
/** 判断是否为大写英文字母,是则返回true,否则返回false*/
function f_check_uppercase(obj){
if (/^[a-z]+$/.test( obj.value ))
{
return true;
}
f_alert(obj,"请输入大写英文字母");
return false;
}
/** 判断是否为英文字母,是则返回true,否则返回false*/
function f_check_letter(obj){
if (/^[a-za-z]+$/.test( obj.value ))
{
return true;
}
f_alert(obj,"请输入英文字母");
return false;
}
/*
用途:检查输入字符串是否只由汉字、字母、数字组成
输入:
value:字符串
返回:
如果通过验证返回true,否则返回false*/
function f_check_zhornumorlett(obj){ //判断是否是汉字、字母、数字组成
var regu = "^[0-9a-za-z/u4e00-/u9fa5]+$";
var re = new regexp(regu);
if (re.test( obj.value )) {
return true;
}
f_alert(obj,"请输入汉字、字母或数字");
return false;
}
/*
用途:校验ip地址的格式
输入:strip:ip地址
返回:如果通过验证返回true,否则返回false;*/
function f_check_ip(obj){
var re=/^(/d+)/.(/d+)/.(/d+)/.(/d+)$/; //匹配ip地址的正则表达式
if(re.test( obj.value ))
{
if( regexp.$1 <256 && regexp.$2<256 && regexp.$3<256 && regexp.$4<256) return true;
}
f_alert(obj,"请输入合法的计算机ip地址");
return false;
}
/*
用途:检查输入对象的值是否符合端口号格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false*/
function f_check_port(obj){
if(!f_check_number(obj))
return false;
if(obj.value < 65536)
return true;
f_alert(obj,"请输入合法的计算机ip地址端口号");
return false;
}
/*
用途:检查输入对象的值是否符合网址格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false*/
function f_check_url(obj){
var myreg = /^((http:[/][/])?/w+([.]/w+|[/]/w*)*)?$/;
if(myreg.test( obj.value )) return true;
f_alert(obj,"请输入合法的网页地址");
return false;
}
/*
用途:检查输入对象的值是否符合e-mail格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false*/
function f_check_email(obj){
var myreg = /^([-_a-za-z0-9/.]+)@([_a-za-z0-9]+/.)+[a-za-z0-9]{2,3}$/;
if(myreg.test( obj.value )) return true;
f_alert(obj,"请输入合法的电子邮件地址");
return false;
}
/*
要求:一、移动电话号码为11或12位,如果为12位,那么第一位为0
二、11位移动电话号码的第一位和第二位为"13"
三、12位移动电话号码的第二位和第三位为"13"
用途:检查输入手机号码是否正确
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false*/
function f_check_mobile(obj){
var regu =/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;
var re = new regexp(regu);
if (re.test( obj.value )) {
return true;
}
f_alert(obj,"请输入正确的手机号码");
return false;
}
/*
要求:一、电话号码由数字、"("、")"和"-"构成
二、电话号码为3到8位
三、如果电话号码中包含有区号,那么区号为三位或四位
四、区号用"("、")"或"-"和其他部分隔开
用途:检查输入的电话号码格式是否正确
输入:
strphone:字符串
返回:
如果通过验证返回true,否则返回false*/
function f_check_phone(obj){
var regu =/(^([0][1-9]{2,3}[-])?/d{3,8}(-/d{1,6})?$)|(^/([0][1-9]{2,3}/)/d{3,8}(/(/d{1,6}/))?$)|(^/d{3,8}$)/;
var re = new regexp(regu);
if (re.test( obj.value )) {
return true;
}
f_alert(obj,"请输入正确的电话号码");
return false;
}
/* 判断是否为邮政编码 */
function f_check_zipcode(obj){
if(!f_check_number(obj))
return false;
if(obj.value.length!=6)
{
f_alert(obj,"邮政编码长度必须是6位");
return false;
}
return true;
}