javascript 常用代码大全(3)
function checkBrowser()
{
this.ver=navigator.appVersion
this.dom=document.getElementById?1:0
this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
this.ie4=(document.all && !this.dom)?1:0;
this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
this.ns4=(document.layers && !this.dom)?1:0;
this.mac=(this.ver.indexOf('Mac') > -1) ?1:0;
this.ope=(navigator.userAgent.indexOf('Opera')>-1);
this.ie=(this.ie6 || this.ie5 || this.ie4)
this.ns=(this.ns4 || this.ns5)
this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope)
this.nbw=(!this.bw)
return this;
}
/*
******************************************
日期函数扩充
******************************************
*/
/*
===========================================
//转换成大写日期(中文)
===========================================
*/
Date.prototype.toCase = function()
{
var digits= new Array('零','一','二','三','四','五','六','七','八','九','十','十一','十二');
var unit= new Array('年','月','日','点','分','秒');
var year= this.getYear() + "";
var index;
var output="";
////////得到年
for (index=0;index<year.length;index++ )
{
output += digits[parseInt(year.substr(index,1))];
}
output +=unit[0];
///////得到月
output +=digits[this.getMonth()] + unit[1];
///////得到日
switch (parseInt(this.getDate() / 10))
{
case 0:
output +=digits[this.getDate() % 10];
break;
case 1:
output +=digits[10] + ((this.getDate() % 10)>0?digits[(this.getDate() % 10)]:"");
break;
case 2:
case 3:
output +=digits[parseInt(this.getDate() / 10)] + digits[10] + ((this.getDate() % 10)>0?digits[(this.getDate() % 10)]:"");
default:
break;
}
output +=unit[2];
///////得到时
switch (parseInt(this.getHours() / 10))
{
case 0:
output +=digits[this.getHours() % 10];
break;
case 1:
output +=digits[10] + ((this.getHours() % 10)>0?digits[(this.getHours() % 10)]:"");
break;
case 2:
output +=digits[parseInt(this.getHours() / 10)] + digits[10] + ((this.getHours() % 10)>0?digits[(this.getHours() % 10)]:"");
break;
}
output +=unit[3];
if(this.getMinutes()==0&&this.getSeconds()==0)
{
output +="整";
return output;
}
///////得到分
switch (parseInt(this.getMinutes() / 10))
{
case 0:
output +=digits[this.getMinutes() % 10];
break;
case 1:
output +=digits[10] + ((this.getMinutes() % 10)>0?digits[(this.getMinutes() % 10)]:"");
break;
case 2:
case 3:
case 4:
case 5:
output
+=digits[parseInt(this.getMinutes() / 10)] + digits[10] +
((this.getMinutes() % 10)>0?digits[(this.getMinutes() % 10)]:"");
break;
}
output +=unit[4];
if(this.getSeconds()==0)
{
output +="整";
return output;
}
///////得到秒
switch (parseInt(this.getSeconds() / 10))
{
case 0:
output +=digits[this.getSeconds() % 10];
break;
case 1:
output +=digits[10] + ((this.getSeconds() % 10)>0?digits[(this.getSeconds() % 10)]:"");
break;
case 2:
case 3:
case 4:
case 5:
output
+=digits[parseInt(this.getSeconds() / 10)] + digits[10] +
((this.getSeconds() % 10)>0?digits[(this.getSeconds() % 10)]:"");
break;
}
output +=unit[5];
return output;
}
/*
===========================================
//转换成农历
===========================================
*/
Date.prototype.toChinese = function()
{
//暂缺
}
/*
===========================================
//是否是闰年
===========================================
*/
Date.prototype.isLeapYear = function()
{
return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0)));
}
/*
===========================================
//获得该月的天数
===========================================
*/
Date.prototype.getDayCountInMonth = function()
{
var mon = new Array(12);
mon[0] = 31; mon[1] = 28; mon[2] = 31; mon[3] = 30; mon[4] = 31; mon[5] = 30;
mon[6] = 31; mon[7] = 31; mon[8] = 30; mon[9] = 31; mon[10] = 30; mon[11] = 31;
if(0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0))&&this.getMonth()==2)
{
return 29;
}
else
{
return mon[this.getMonth()];
}
}
/*
===========================================
//日期比较
===========================================
*/
Date.prototype.Compare = function(objDate)
{
if(typeof(objDate)!="object" && objDate.constructor != Date)
{
return -2;
}
var d = this.getTime() - objDate.getTime();
if(d>0)
{
return 1;
}
else if(d==0)
{
return 0;
}
else
{
return -1;
}
}
/*
===========================================
//格式化日期格式
===========================================
*/
Date.prototype.Format = function(formatStr)
{
var str = formatStr;
str=str.replace(/yyyy|YYYY/,this.getFullYear());
str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():"0" + (this.getYear() % 100));
str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():"0" + this.getMonth());
str=str.replace(/M/g,this.getMonth());
str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():"0" + this.getDate());
str=str.replace(/d|D/g,this.getDate());
str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():"0" + this.getHours());
str=str.replace(/h|H/g,this.getHours());
str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():"0" + this.getMinutes());
str=str.replace(/m/g,this.getMinutes());
str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():"0" + this.getSeconds());
str=str.replace(/s|S/g,this.getSeconds());
return str;
}
/*
===========================================
//由字符串直接实例日期对象
===========================================
*/
Date.prototype.instanceFromString = function(str)
{
return new Date("2004-10-10".replace(/-/g, ""/"));
}
/*
===========================================
//得到日期年月日等加数字后的日期
===========================================
*/
Date.prototype.dateAdd = function(interval,number)
{
var date = this;
switch(interval)
{
case "y" :
date.setFullYear(date.getFullYear()+number);
return date;
case "q" :
date.setMonth(date.getMonth()+number*3);
return date;
case "m" :
date.setMonth(date.getMonth()+number);
return date;
case "w" :
date.setDate(date.getDate()+number*7);
return date;
case "d" :
date.setDate(date.getDate()+number);
return date;
case "h" :
date.setHours(date.getHours()+number);
return date;
case "m" :
date.setMinutes(date.getMinutes()+number);
return date;
case "s" :
date.setSeconds(date.getSeconds()+number);
return date;
default :
date.setDate(d.getDate()+number);
return date;
}
}
/*
===========================================
//计算两日期相差的日期年月日等
===========================================
*/
Date.prototype.dateDiff = function(interval,objDate)
{
//暂缺
}
/*
******************************************
数字函数扩充
******************************************
*/
/*
===========================================
//转换成中文大写数字
===========================================
*/
Number.prototype.toChinese = function()
{
var num = this;
if(!/^"d*("."d*)?$/.test(num)){alert("Number is wrong!"); return "Number is wrong!";}
var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
var BB = new Array("","拾","佰","仟","萬","億","点","");
var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = "";
for(var i=a[0].length-1; i>=0; i--)
{
switch(k)
{
case 0 : re = BB[7] + re; break;
case 4 : if(!new RegExp("0{4}""d{"+ (a[0].length-i-1) +"}$").test(a[0]))
re = BB[4] + re; break;
case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break;
}
if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re;
if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++;
}
if(a.length>1) //加上小数部分(如果有小数部分)
{
re += BB[6];
for(var i=0; i<a[1].length; i++) re += AA[a[1].charAt(i)];
}
return re;
}
/*
===========================================
//保留小数点位数
===========================================
*/
Number.prototype.toFixed=function(len)
{
if(isNaN(len)||len==null)
{
len = 0;
}
else
{
if(len<0)
{
len = 0;
}
}
return Math.round(this * Math.pow(10,len)) / Math.pow(10,len);
}
/*
===========================================
//转换成大写金额
===========================================
*/
Number.prototype.toMoney = function()
{
// Constants:
var MAXIMUM_NUMBER = 99999999999.99;
// Predefine the radix characters and currency symbols for output:
var CN_ZERO= "零";
var CN_ONE= "壹";
var CN_TWO= "贰";
var CN_THREE= "叁";
var CN_FOUR= "肆";
var CN_FIVE= "伍";
var CN_SIX= "陆";
var CN_SEVEN= "柒";
var CN_EIGHT= "捌";
var CN_NINE= "玖";
var CN_TEN= "拾";
var CN_HUNDRED= "佰";
var CN_THOUSAND = "仟";
var CN_TEN_THOUSAND= "万";
var CN_HUNDRED_MILLION= "亿";
var CN_SYMBOL= "";
var CN_DOLLAR= "元";
var CN_TEN_CENT = "角";
var CN_CENT= "分";
var CN_INTEGER= "整";
// Variables:
var integral; // Represent integral part of digit number.
var decimal; // Represent decimal part of digit number.
var outputCharacters; // The output result.
var parts;
var digits, radices, bigRadices, decimals;
var zeroCount;
var i, p, d;
var quotient, modulus;
if (this > MAXIMUM_NUMBER)
{
return "";
}
// Process the coversion from currency digits to characters:
// Separate integral and decimal parts before processing coversion:
parts = (this + "").split(".");
if (parts.length > 1)
{
integral = parts[0];
decimal = parts[1];
// Cut down redundant decimal digits that are after the second.
decimal = decimal.substr(0, 2);
}
else
{
integral = parts[0];
decimal = "";
}
// Prepare the characters corresponding to the digits:
digits= new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);
radices= new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);
bigRadices= new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);
decimals= new Array(CN_TEN_CENT, CN_CENT);
// Start processing:
outputCharacters = "";
// Process integral part if it is larger than 0:
if (Number(integral) > 0)
{
zeroCount = 0;
for (i = 0; i < integral.length; i++)
{
p = integral.length - i - 1;
d = integral.substr(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0")
{
zeroCount++;
}
else
{
if (zeroCount > 0)
{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[Number(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4)
{
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += CN_DOLLAR;
}
// Process decimal part if there is:
if (decimal != "")
{
for (i = 0; i < decimal.length; i++)
{
d = decimal.substr(i, 1);
if (d != "0")
{
outputCharacters += digits[Number(d)] + decimals[i];
}
}
}
// Confirm and return the final output string:
if (outputCharacters == "")
{
outputCharacters = CN_ZERO + CN_DOLLAR;
}
if (decimal == "")
{
outputCharacters += CN_INTEGER;
}
outputCharacters = CN_SYMBOL + outputCharacters;
return outputCharacters;
}
Number.prototype.toImage = function()
{
var num = Array(
"#define t_width 3"n#define t_height 5"nstatic char t_bits[] = {0xF,0x5,0x5,0x5,0xF}",
"#define t_width 3"n#define t_height 5"nstatic char t_bits[] = {0x4,0x4,0x4,0x4,0x4}",
"#define t_width 3"n#define t_height 5"nstatic char t_bits[] = {0xF,0x4,0xF,0x1,0xF}",
"#define t_width 3"n#define t_height 5"nstatic char t_bits[] = {0xF,0x4,0xF,0x4,0xF}",
"#define t_width 3"n#define t_height 5"nstatic char t_bits[] = {0x5,0x5,0xF,0x4,0x4}",
"#define t_width 3"n#define t_height 5"nstatic char t_bits[] = {0xF,0x1,0xF,0x4,0xF}",
"#define t_width 3"n#define t_height 5"nstatic char t_bits[] = {0xF,0x1,0xF,0x5,0xF}",
"#define t_width 3"n#define t_height 5"nstatic char t_bits[] = {0xF,0x4,0x4,0x4,0x4}",
"#define t_width 3"n#define t_height 5"nstatic char t_bits[] = {0xF,0x5,0xF,0x5,0xF}",
"#define t_width 3"n#define t_height 5"nstatic char t_bits[] = {0xF,0x5,0xF,0x4,0xF}"
);
var str = this + "";
var iIndex
var result=""
for(iIndex=0;iIndex<str.length;iIndex++)
{
result +="<img src='javascript:" & num(iIndex) & "'">
}
return result;
}
/*
******************************************
其他函数扩充
******************************************
*/
/*
===========================================
//验证类函数
===========================================
*/
function IsEmpty(obj)
{
obj=document.getElementsByName(obj).item(0);
if(Trim(obj.value)=="")
{
if(obj.disabled==false && obj.readOnly==false)
{
obj.focus();
}
return true;
}
else
{
return false;
}
}
/*
===========================================
//无模式提示对话框
===========================================
*/
function modelessAlert(Msg)
{
window.showModelessDialog("javascript:alert("""+escape(Msg)+""");window.close();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;");
}
/*
===========================================
//页面里回车到下一控件的焦点
===========================================
*/
function Enter2Tab()
{
var e = document.activeElement;
if(e.tagName == "INPUT" &&
(
e.type == "text" ||
e.type == "password" ||
e.type == "checkbox" ||
e.type == "radio"
) ||
e.tagName == "SELECT")
{
if(window.event.keyCode == 13)
{
window.event.keyCode = 9;
}
}
}
////////打开此功能请取消下行注释
//document.onkeydown = Enter2Tab;
function ViewSource(url)
{
window.location = 'view-source:'+ url;
}
///////禁止右键
document.oncontextmenu = function() { return false;}
/*
******************************************
字符串函数扩充
******************************************
*/
/*
===========================================
//去除左边的空格
===========================================
*/
String.prototype.LTrim = function()
{
return this.replace(/(^"s*)/g, "");
}
String.prototype.Mid = function(start,len)
{
if(isNaN(start)&&start<0)
{
return "";
}
if(isNaN(len)&&len<0)
{
return "";
}
return this.substring(start,len);
}
/*
===========================================
//去除右边的空格
===========================================
*/
String.prototype.Rtrim = function()
{
return this.replace(/("s*$)/g, "");
}
/*
===========================================
//去除前后空格
===========================================
*/
String.prototype.Trim = function()
{
return this.replace(/(^"s*)|("s*$)/g, "");
}
/*
===========================================
//得到左边的字符串
===========================================
*/
String.prototype.Left = function(len)
{
if(isNaN(len)||len==null)
{
len = this.length;
}
else
{
if(parseInt(len)<0||parseInt(len)>this.length)
{
len = this.length;
}
}
return this.substring(0,len);
}
/*
===========================================
//得到右边的字符串
===========================================
*/
String.prototype.Right = function(len)
{
if(isNaN(len)||len==null)
{
len = this.length;
}
else
{
if(parseInt(len)<0||parseInt(len)>this.length)
{
len = this.length;
}
}
return this.substring(this.length-len,this.length);
}
/*
===========================================
//得到中间的字符串,注意从0开始
===========================================
*/
String.prototype.Mid = function(start,len)
{
if(isNaN(start)||start==null)
{
start = 0;
}
else
{
if(parseInt(start)<0)
{
start = 0;
}
}
if(isNaN(len)||len==null)
{
len = this.length;
}
else
{
if(parseInt(len)<0)
{
len = this.length;
}
}
return this.substring(start,start+len);
}
/*
===========================================
//在字符串里查找另一字符串:位置从0开始
===========================================
*/
String.prototype.InStr = function(str)
{
if(str==null)
{
str = "";
}
return this.indexOf(str);
}
/*
===========================================
//在字符串里反向查找另一字符串:位置0开始
===========================================
*/
String.prototype.InStrRev = function(str)
{
if(str==null)
{
str = "";
}
return this.lastIndexOf(str);
}
/*
===========================================
//计算字符串打印长度
===========================================
*/
String.prototype.LengthW = function()
{
return this.replace(/[^"x00-"xff]/g,"**").length;
}
/*
===========================================
//是否是正确的IP地址
===========================================
*/
String.prototype.isIP = function()
{
var reSpaceCheck = /^("d+)".("d+)".("d+)".("d+)$/;
if (reSpaceCheck.test(this))
{
this.match(reSpaceCheck);
if (RegExp.$1 <= 255 && RegExp.$1 >= 0
&& RegExp.$2 <= 255 && RegExp.$2 >= 0
&& RegExp.$3 <= 255 && RegExp.$3 >= 0
&& RegExp.$4 <= 255 && RegExp.$4 >= 0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
/*
===========================================
//是否是正确的长日期
===========================================
*/
String.prototype.isDate = function()
{
var r = str.match(/^("d{1,4})(-|"/)("d{1,2})"2("d{1,2}) ("d{1,2}):("d{1,2}):("d{1,2})$/);
if(r==null)
{
return false;
}
var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
return
(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}
/*
===========================================
//是否是手机
===========================================
*/
String.prototype.isMobile = function()
{
return /^0{0,1}13[0-9]{9}$/.test(this);
}
/*
===========================================
//是否是邮件
===========================================
*/
String.prototype.isEmail = function()
{
return /^"w+((-"w+)|("."w+))*"@[A-Za-z0-9]+((".|-)[A-Za-z0-9]+)*".[A-Za-z0-9]+$/.test(this);
}
/*
===========================================
//是否是邮编(中国)
===========================================
*/
String.prototype.isZipCode = function()
{
return /^[""d]{6}$/.test(this);
}
/*
===========================================
//是否是有汉字
===========================================
*/
String.prototype.existChinese = function()
{
//["u4E00-"u9FA5]為漢字﹐["uFE30-"uFFA0]為全角符號
return /^["x00-"xff]*$/.test(this);
}
/*
===========================================
//是否是合法的文件名/目录名
===========================================
*/
String.prototype.isFileName = function()
{
return !/["""/"*"?"|:"<>]/g.test(this);
}
/*
===========================================
//是否是有效链接
===========================================
*/
String.Prototype.isUrl = function()
{
return /^http:"/"/(["w-]+".)+["w-]+(/["w-./?%&=]*)?$/.test(this);
}
/*
===========================================
//是否是有效的身份证(中国)
===========================================
*/
String.prototype.isIDCard = function()
{
var iSum=0;
var info="";
var sId = this;
var aCity={11:"北京", 12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏 ",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东 ",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃 ",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};
if(!/^"d{17}("d|x)$/i.test(sId))
{
return false;
}
sId=sId.replace(/x$/i,"a");
//非法地区
if(aCity[parseInt(sId.substr(0,2))]==null)
{
return false;
}
var sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,"/"))
//非法生日
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
{
return false;
}
for(var i = 17;i>=0;i--)
{
iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11);
}
if(iSum%11!=1)
{
return false;
}
return true;
}
/*
===========================================
//是否是有效的电话号码(中国)
===========================================
*/
String.prototype.isPhoneCall = function()
{
return /(^[0-9]{3,4}"-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^"([0-9]{3,4}")[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/.test(this);
}
/*
===========================================
//是否是数字
===========================================
*/
String.prototype.isNumeric = function(flag)
{
//验证是否是数字
if(isNaN(this))
{
return false;
}
switch(flag)
{
case null://数字
case "":
return true;
case "+"://正数
return/(^"+?|^"d?)"d*".?"d+$/.test(this);
case "-"://负数
return/^-"d*".?"d+$/.test(this);
case "i"://整数
return/(^-?|^"+?|"d)"d+$/.test(this);
case "+i"://正整数
return/(^"d+$)|(^"+?"d+$)/.test(this);
case "-i"://负整数
return/^[-]"d+$/.test(this);
case "f"://浮点数
return/(^-?|^"+?|^"d?)"d*"."d+$/.test(this);
case "+f"://正浮点数
return/(^"+?|^"d?)"d*"."d+$/.test(this);
case "-f"://负浮点数
return/^[-]"d*"."d$/.test(this);
default://缺省
return true;
}
}
/*
===========================================
//转换成全角
===========================================
*/
String.prototype.toCase = function()
{
var tmp = "";
for(var i=0;i<this.length;i++)
{
if(this.charCodeAt(i)>0&&this.charCodeAt(i)<255)
{
tmp += String.fromCharCode(this.charCodeAt(i)+65248);
}
else
{
tmp += String.fromCharCode(this.charCodeAt(i));
}
}
return tmp
}
/*
===========================================
//对字符串进行Html编码
===========================================
*/
String.prototype.toHtmlEncode = function
{
var str = this;
str=str.replace("&","&");
str=str.replace("<","<");
str=str.replace(">",">");
str=str.replace("'","'");
str=str.replace("""",""");
return str;
}
qqdao(青青岛)
精心整理的输入判断js函数
关键词:字符串判断,字符串处理,字串判断,字串处理
//'*********************************************************
// ' Purpose: 判断输入是否为整数字
// ' Inputs: String
// ' Returns: True, False
//'*********************************************************
function onlynumber(str)
{
var i,strlength,tempchar;
str=CStr(str);
if(str=="") return false;
strlength=str.length;
for(i=0;i<strlength;i++)
{
tempchar=str.substring(i,i+1);
if(!(tempchar==0||tempchar==1||tempchar==2||tempchar==3||tempchar==4||tempchar==5||tempchar==6||tempchar==7||tempchar==8||tempchar==9))
{
alert("只能输入数字 ");
return false;
}
}
return true;
}
//'*********************************************************
//'*********************************************************
// ' Purpose: 判断输入是否为数值(包括小数点)
// ' Inputs: String
// ' Returns: True, False
//'*********************************************************
function IsFloat(str)
{ var tmp;
var temp;
var i;
tmp =str;
if(str=="") return false;
for(i=0;i<tmp.length;i++)
{temp=tmp.substring(i,i+1);
if((temp>='0'&& temp<='9')||(temp=='.')){} //check input in 0-9 and '.'
else { return false;}
}
return true;
}
//'*********************************************************
// ' Purpose: 判断输入是否为电话号码
// ' Inputs: String
// ' Returns: True, False
//'*********************************************************
function isphonenumber(str)
{
var i,strlengh,tempchar;
str=CStr(str);
if(str=="") return false;
strlength=str.length;
for(i=0;i<strlength;i++)
{
tempchar=str.substring(i,i+1);
if(!(tempchar==0||tempchar==1||tempchar==2||tempchar==3||tempchar==4||tempchar==5||tempchar==6||tempchar==7||tempchar==8||tempchar==9||tempchar=='-'))
{
alert("电话号码只能输入数字和中划线 ");
return(false);
}
}
return(true);
}
//'*********************************************************
//'*********************************************************
// ' Purpose: 判断输入是否为Email
// ' Inputs: String
// ' Returns: True, False
//'*********************************************************
function isemail(str)
{
var bflag=true
if (str.indexOf("'")!=-1) {
bflag=false
}
if (str.indexOf("@")==-1) {
bflag=false
}
else if(str.charAt(0)=="@"){
bflag=false
}
return bflag
}
//'*********************************************************
// ' Purpose: 判断输入是否含有为中文
// ' Inputs: String
// ' Returns: True, False
//'*********************************************************
function IsChinese(str)
{
if(escape(str).indexOf("%u")!=-1)
{
return true;
}
return false;
}
//'*********************************************************
//'*********************************************************
// ' Purpose: 判断输入是否含有空格
// ' Inputs: String
// ' Returns: True, False
//'*********************************************************
function checkblank(str)
{
var strlength;
var k;
var ch;
strlength=str.length;
for(k=0;k<=strlength;k++)
{
ch=str.substring(k,k+1);
if(ch==" ")
{
alert("对不起 不能输入空格 ");
return false;
}
}
return true;
}
//'*********************************************************
//'*********************************************************
// ' Purpose: 去掉Str两边空格
// ' Inputs: Str
// ' Returns: 去掉两边空格的Str
//'*********************************************************
function trim(str)
{
var i,strlength,t,chartemp,returnstr;
str=CStr(str);
strlength=str.length;
t=str;
for(i=0;i<strlength;i++)
{
chartemp=str.substring(i,i+1);
if(chartemp==" ")
{
t=str.substring(i+1,strlength);
}
else
{
break;
}
}
returnstr=t;
strlength=t.length;
for(i=strlength;i>=0;i--)
{
chartemp=t.substring(i,i-1);
if(chartemp==" ")
{
returnstr=t.substring(i-1,0);
}
else
{
break;
}
}
return (returnstr);
}
//'*********************************************************
//'*********************************************************
// ' Purpose: 将数值类型转化为String
// ' Inputs: int
// ' Returns: String
//'*********************************************************
function CStr(inp)
{
return(""+inp+"");
}
//'*********************************************************
//'*********************************************************
// ' Purpose: 去除不合法字符, ' " < >
// ' Inputs: String
// ' Returns: String
//'*********************************************************
function Rep(str)
{var str1;
str1=str;
str1=replace(str1,"'","`",1,0);
str1=replace(str1,'"',"`",1,0);
str1=replace(str1,"<","(",1,0);
str1=replace(str1,">",")",1,0);
return str1;
}
//'*********************************************************
//'*********************************************************
// ' Purpose: 替代字符
// ' Inputs: 目标String,欲替代的字符,替代成为字符串,大小写是否敏感,是否整字代替
// ' Returns: String
//'*********************************************************
function replace(target,oldTerm,newTerm,caseSens,wordOnly)
{ var wk ;
var ind = 0;
var next = 0;
wk=CStr(target);
if (!caseSens)
{
oldTerm = oldTerm.toLowerCase();
wk = target.toLowerCase();
}
while ((ind = wk.indexOf(oldTerm,next)) >= 0)
{
if (wordOnly)
{
var before = ind - 1;
var after = ind + oldTerm.length;
if (!(space(wk.charAt(before)) && space(wk.charAt(after))))
{
next = ind + oldTerm.length;
continue;
}
}
target = target.substring(0,ind) + newTerm + target.substring(ind+oldTerm.length,target.length);
wk = wk.substring(0,ind) + newTerm + wk.substring(ind+oldTerm.length,wk.length);
next = ind + newTerm.length;
if (next >= wk.length) { break; }
}
return target;
}
//'*********************************************************
几个判断,并强制设置焦点:
//+------------------------------------
// trim 去除字符串两端的空格
String.prototype.trim=function(){return this.replace(/(^"s*)|("s*$)/g,"")}
//-------------------------------------
// avoidDeadLock 避免设置焦点死循环问题
// 起死原因:以文本框为例,当一个文本框的输入不符合条件时,这时,鼠标点击另一个文本框,触发第一个文本框的离开事件
// ,产生设置焦点动作。现在产生了第二个文本框的离开事件,因此也要设置第二个文本框的焦点,造成死锁。
// 解决方案:设置一个全局对象[key],记录当前触发事件的对象,若其符合条件,则释放该key;若其仍不符合,则key还是指
// 向该对象,别的对象触发不到设置焦点的语句。
/////////////////////////////////////////
// 文本框控制函数
//
/////////////////////////////////////////
var g_Obj = null;// 记住旧的控件
// hintFlag参数:0表示没有被别的函数调用,因此出现提示;1表示被调用,不出现警告信息
// focusFlag参数:指示是否要设置其焦点,分情况:0表示有的可为空;1表示有的不为空
// 避免死锁的公共部分
//+------------------------------------
function textCom(obj, hintFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();
}
//-------------------------------------
// 文本框不为空
//+------------------------------------
function TBNotNull(obj, hintFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();
if (g_Obj.value == "")
{
if (hintFlag == 0)
{
g_Obj.focus();
alert("内容不能为空!");
}
return false;
}
else
g_Obj = null;
return true;
}
//-------------------------------------
// 输入内容为数字
//+------------------------------------
function LetNumber(obj, hintFlag, focusFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();
if ((g_Obj.value == "") || isNaN(g_Obj.value))
{
if (hintFlag == 0)
{
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
alert("输入的内容必须为数字!");
}
return false;
}
else
g_Obj = null;
return true;
}
//-------------------------------------
// 输入内容为整数
//+------------------------------------
function LetInteger(obj, hintFlag, focusFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();
if (!/^"d*$/.test(g_Obj.value) || (g_Obj.value == ""))
{
if (hintFlag == 0)
{
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
alert("输入的内容必须为整数!");
}
return false;
}
else
g_Obj = null;
return true;
}
//-------------------------------------
// 输入内容为字母
//+------------------------------------
function LetLetter(obj, hintFlag, focusFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
if (!/^[A-Za-z]*$/.test(g_Obj.value))
{
if (hintFlag == 0)
{
alert("输入的内容必须为字母!");
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
}
return false;
}
else
{
g_Obj = null;
}
return true;
}
//-------------------------------------
// 内容大于某值
//+------------------------------------
function LetMoreThan(obj, leftNumber, hintFlag, focusFlag)
{
var ifAlert;// 是否出现警告
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();
if (g_Obj.value == "")
ifAlert = 0;
else
ifAlert = 1;
if ((g_Obj.value == "") || (isNaN(g_Obj.value)) || (g_Obj.value < leftNumber))
{
if (hintFlag == 0)
{
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
// 更友好的提示
if (ifAlert == 1)
{
if (leftNumber == 0)
alert("内容必须为非负数!");
else
alert("输入的内容必须" + leftNumber + "以上!");
}
}
return false;
}
else
g_Obj = null;
return true;
}
//-------------------------------------
// 内容大于某值,整数
//+------------------------------------
function LetMoreThan_Int(obj, leftNumber, hintFlag, focusFlag)
{
var ifAlert;// 是否出现警告
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();
if (g_Obj.value == "")
ifAlert = 0;
else
ifAlert = 1;
if ((g_Obj.value == "") || (isNaN(g_Obj.value) || g_Obj.value < leftNumber) || !/^"d*$/.test(g_Obj.value))
{
if (hintFlag == 0)
{
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
{g_Obj = null;}
if (ifAlert == 1)// 当用户不输入的时候,不出现提示
{
// 更友好的提示
if (leftNumber == 0)
alert("内容必须为非负整数!");
else
alert("且必须在" + leftNumber + "以上!");
}
}
return false;
}
else
g_Obj = null;
return true;
}
//-------------------------------------
// 内容小于某值
//+------------------------------------
function LetLessThan(obj, rightNumber, hintFlag, focusFlag)
{
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();
if ((g_Obj.value == "") || (isNaN(g_Obj.value) || g_Obj.value > rightNumber))
{
if (hintFlag == 0)
{
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
alert("输入的内容必须在" + rightNumber + "以下!");
}
return false;
}
else
{g_Obj = null;}
return true;
}
//-------------------------------------
// 内容介于两值中间
//+------------------------------------
function LetMid(obj, leftNumber, rightNumber, hintFlag, focusFlag)
{
var ifAlert;// 是否出现警告
if (g_Obj == null)
g_Obj=event.srcElement;
else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
{
g_Obj = null;
return;
}
g_Obj.value = g_Obj.value.trim();
if (g_Obj.value == "")
ifAlert = 0;
else
ifAlert = 1;
// 首先应该为数字
if (LetNumber(g_Obj, 1))
{
if (!(LetMoreThan(obj,leftNumber,1,0) && LetLessThan(obj,rightNumber,1,0)))
{
if (hintFlag == 0)
{
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
if (ifAlert == 1)// 当用户不输入的时候,不出现提示
alert("输入的内容必须介于" + leftNumber + "和" + rightNumber + "之间!");
}
return false;
}
else
{g_Obj = null;}
}
else
{
if (hintFlag == 0)
{
g_Obj.value = "";
if (focusFlag == 1)
g_Obj.focus();
else
g_Obj = null;
if (ifAlert == 1)
alert("输入的内容必须为数字!"n" +
"且介于" + leftNumber + "和" + rightNumber + "之间!");
}
return false;
}
return true;
}
//-------------------------------------
/////////////////////////////////////////
// 下拉框
/////////////////////////////////////////
// 下拉框,务必选择
//+------------------------------------
function onSelLostFocus(obj)
{
if (g_Obj == null)
{
g_Obj=event.srcElement;
}
else if ((g_Obj!=null) && (g_Obj!=obj))
{
g_Obj = null;
return;
}
if (g_Obj.selectedIndex == 0)
{
g_Obj.focus();
}
else
{
g_Obj = null;
}
}