JavaScript 常用校验检查 的封装和汇总 (Web开发中都会用到):
/**
* JavaScript 检查库
* @author Beau Virgill
* @version 1.20
* @last modify time 2013/2/24
* #@ validate.js
* 第一类 检查并返回检查结果(true or false)
* a-1. ifDigit(str,allowNull) 是否为合法非负整数(examples/ifDigit.html)
* a-2. ifLetter(str,allowNull) 是否为英文字母
* a-3. ifDay(str,allowNull) 是否为天数
* a-4. ifMonth(str,allowNull) 是否为月份
* a-5. ifYear(str,allowNull) 是否为年份
* a-6. ifDate(String,allowNull) 是否为日期
* a-7. ifEmail(String,allowNull) 是否为邮件地址
* a-8. ifPhone(String,allowNull) 是否为电话号码
* a-9. ifGBK(String,allowNull) 是否为中文字符
* a-10.ifMoney(String,allowNull) 是否为合法货币数字
* a-11 ifMoenyRange(String,int,int,allowNull) 判断字符串是否为合法钱数,且是否超过限定范围
* a-12. checkMonthLength(mm, dd, yyyy) 判断是否为合法日期
* a-13. getSelectedButton(buttonGroup) 判断buttongroup为名的一组radio中有无被选中的项
* 第二类 检查后直接报错
* b-1. isDigit(Object,allowNull) 是否为数字
* b-2. isLetter(Object,allowNull) 是否为字母
* b-3. isDay(Object,allowNull) 是否为天数
* b-4. isMonth(Object,allowNull) 是否为月份
* b-5. isYear(Object,allowNull) 是否为年份
* b-6. isDate(Object,allowNull) 是否为日期
* b-7. isEmail(Object,allowNull) 是否为邮件地址
* b-8. isPhone(Object,allowNull) 是否为电话号码
* b-9. isGBK(Object,allowNull,msgname) 是否为中文字符(必须不能是中文)
* b-10. isMoney(Object,allowNull) 是否为合法货币数字
* b-11. isMoneyRange(obj,minValue,maxValue,allowNull) 判断是否合法钱数且是否超过限定额度
* b-12. checkLeng(Object, min, max,allowNull) 字符串长度是否在指定长度范围内
* b-13.1 checkValidDate(yyObject,mmObject,ddObject,allowNull) 对日期进行全面的检查
* b-13.2 checkValidDateRange(yyObject1,mmObject1,ddObject1,allowNull1,yyObject2,mmObject2,ddObject2,allowNull2)
* 检查起始日期及截止日期
* b-15. showMsg(String, Object) 显示提示信息String,光标焦点落在Object上,返回false
* b-16. isMobile(Object,allowNull) 是否为手机号码
* b-17. checkGBK(Object,allowNull,msgname) 是否为中文字符(必须是中文)
* b-18 isPhone(Object,allowNull,msgname) 是否为固定电话号码
* b-19 isMobile(obj,allwoNull,msgname))是否为手机号码
* b-20 isEmail(Object,allwoNull,msgname)是否为邮件地址
* b-21 checkCompareDate(objbegintime,objendtime,msgbeginname,msgendname,ischecknow) 比较开始时间和结束时间
* 第三类 功能函数,并不报错
* c-1. getLength(String) 获取字符长度(每个中文字符为2个字符)
* c-2. trim(String) 去掉字符串前后的空格并返回
* c-3. textsTrim(formname) 将form中所有的text文本进行trim操作。
*/
function checkValidStr(name){
for (i = 0; i < name.length; i++) {
if (name.charAt(i) == '$'
|| name.charAt(i) == '!'
|| name.charAt(i) == '~'
|| name.charAt(i) == '`'
|| name.charAt(i) == '?'
|| name.charAt(i) == '='
|| name.charAt(i) == '/'
|| name.charAt(i) == '|'
|| name.charAt(i) == '+'
|| name.charAt(i) == '#'
|| name.charAt(i) == '%'
|| name.charAt(i) == '^'
|| name.charAt(i) == '\''
|| name.charAt(i) == ';'
|| name.charAt(i) == '{'
|| name.charAt(i) == '}'
|| name.charAt(i) == ']'
|| name.charAt(i) == '['
|| name.charAt(i) == ')'
|| name.charAt(i) == '('
|| name.charAt(i) == '<'
|| name.charAt(i) == '>'
|| name.charAt(i) == '&'
|| name.charAt(i) == ' '
|| name.charAt(i) == '"')
return false;
}
return true;
}
//建立者:Beau Virgill
//判断字符串是否为合法非负整数
// a-1 ifDigit(str,allowNull)
function ifDigit(str,allowNull)
{
slen=str.length;
if(slen==0) return allowNull;
for (i=0; i<slen; i++){
cc = str.charAt(i);
if (cc <"0" || cc >"9")
{
return false;
}
}
return true;
}
//建立者:Beau Virgill
//功能:判断字符串是否都是英文字母
// a-2 ifLetter(str,allowNull)
function ifLetter(str,allowNull ){
slen=getLength(str);
if (slen==0) return allowNull;
str = str.toUpperCase();
for ( var i = 0 ; i < slen; i ++ ){
if ( str.charAt(i) < "A" || str.charAt(i) > "Z" )
return false;
}
return true;
}
// a-3 ifDay(str,allowNull)
function ifDay(str,allowNull)
{
slen=getLength(str);
if (slen==0) return allowNull;
if (!ifDigit(str,allowNull))
{
return false;
}
if (str < "01" || str > "31")
{
return false;
}
return true;
}
// a-4 ifMonth(str,allowNull)
function ifMonth(str,allowNull)
{
slen=getLength(str);
if (slen==0) return allowNull;
if (!ifDigit(str,allowNull))
{
return false;
}
if (str >="1" && str<="9" && slen==1) return true;
if (str >="01" && str <="12") return true;
return false;
}
// a-5 ifYear(str,allowNull)
function ifYear(str,allowNull)
{
slen=getLength(str);
if (slen==0) return allowNull;
if (!ifDigit(str,allowNull))
{
return false;
}
if (str < "1800" || slen < 4)
{
return false;
}
return true;
}
// a-6 ifDate(str,allowNull)
function ifDate(str,allowNull)
{
slen=getLength(str);
if (slen==0) return allowNull;
if (!ifDigit(str,allowNull))
{
return false;
}
else if (slen < 8)
{
return false;
}
cc = str.substr(0,4);
if (cc < "1800")
{
return false;
}
cc = str.substr(4,2);
if (cc < "01" || cc > "12")
{
return false;
}
cc = str.substr(6,2);
if (cc < "01" || cc > "31")
{
return false;
}
return true;
}
//建立者:Beau Virgill
//判断字符串是否为合法邮件地址
// a-7 ifEmail(str,allowNull)
function ifEmail(str,allowNull)
{
if(str.length==0) return allowNull;
i=str.indexOf("@");
j=str.lastIndexOf(".");
if (i == -1 || j == -1 || i > j)
{
return false;
}
return true;
}
// a-8 ifPhone(str,allowNull)
function ifPhone(str,allowNull)
{
slen=getLength(str);
if (slen==0) return allowNull;
for (i=0; i<slen; i++){
cc = str.charAt(i);
if ((cc <"0" || cc >"9") && cc != "-" && cc!="+" && cc!="(" && cc !=")" && cc !="/")
{
return false;
}
}
return true;
}
// a-9 ifGBK(str,allowNull)
function ifGBK(str,allowNull)
{
slen=getLength(str);
if (slen==0) return allowNull;
for (i=0; i<slen; i++){
cc = str.charAt(i);
cc = escape(cc);
if (cc.indexOf("%u") >= 0)
{
return false;
}
}
return true;
}
//建立者:Beau Virgill
//判断字符串是否为合法钱数
// a-10 ifMoeny(String)
function ifMoney(str,allowNull){
if (str.length==0) return allowNull;
if ( ( pos = str.indexOf( "." ) ) != -1 ){
if (str.length==1)
return false;
if ( ( pos = str.indexOf(".", pos + 1) ) != -1 )
return false;
}
for ( var i = 0 ; i < str.length; i ++ ){
if (( str.charAt(i) < "0" || str.charAt(i) > "9" )&&(str.charAt(i)!="."))
return false;
}
return true;
}
//建立者:Beau Virgill
//判断字符串是否为合法钱数,且是否超过限定范围
// a-11 ifMoneyRange(str,minValue,maxValue,allowNull)
function ifMoneyRange(str,minValue,maxValue,allowNull)
{
if (str.length==0) return allowNull;
if(!ifMoney(str))
return false;
if(parseFloat(str)>=maxValue)
return false;
if(parseFloat(str)<minValue)
return false;
return true;
}
//建立者:Beau Virgill
//判断是否为合法日期
// a-12 checkMonthLength(mm, dd, yyyy)
function checkMonthLength(mm,dd,yyyy){
if((mm==4||mm==6||mm==9||mm==11) && dd>30){
return false;
}else if(mm==2){
if(yyyy % 4 >0 && dd>28){
return false;
}else if(dd>29){
return false;
}
}else if(dd>31){
return false;
}
return true;
}
//建立者:Beau Virgill
//判断buttongroup为名的一组radio中有无被选中的项
// a-13 getSelectButton(buttonGroup)
function getSelectedButton(buttonGroup){
for (var i=0;i<buttonGroup.length;i++){
if (buttonGroup[i].checked) return true;
}
return false;
}
//建立者:默认
//功能: 检查是否为数字
//示例: isDigit(String,allowNull)
//输入参数: 需要检查的表单对象名称
//输出参数: true或出错信息
// b-1.1 isDigit(Object,allowNull)
function isDigit(obj,allowNull,msgname)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须填写" + msgname + "!",obj);
return true;
}
for (i=0; i<slen; i++){
cc = obj.value.charAt(i);
if(!(cc == '.')){
if (cc <"0" || cc >"9") return showMsg(msgname + "必须为数字!",obj);
}
}
return true;
}
//建立者:Beau Virgill
//功能: 检查是否为数字
//示例: isDigitMaxlength(String obj,int length,boolean allowNull)
//输入参数: 需要检查的表单对象名称,允许的最大长度
//输出参数: true或出错信息
// b-1.2 isDigitMaxlength(Object,maxlength,allowNull)
function isDigitMaxlength(obj,maxlength,allowNull)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须输入一个长度不超过"+maxlength+"的整数!",obj);
return true;
}
if(slen>maxlength) return showMsg("长度最大为"+maxlength+"!",obj);
for (i=0; i<slen; i++){
cc = obj.value.charAt(i);
if (cc <"0" || cc >"9")
{
return showMsg("必须为整数!",obj);
}
}
return true;
}
//建立者:Beau Virgill
//功能:判断字符串是否都是字母
// b-2 isLetter(Object,allowNull)
function isLetter(obj,allowNull){
obj.value=trim(obj.value);
str = obj.value;
slen=getLength(obj.value);
if ( slen == 0 ){
if(!allowNull) return showMsg("必须输入!",obj);
return true;
}
str = str.toUpperCase();
for ( var i = 0 ; i < slen; i ++ ){
if ( str.charAt(i) < "A" || str.charAt(i) > "Z" )
return showMsg("必须都是英文字母!",obj);
}
return true;
}
// b-3 isDay(Object,allowNull)
function isDay(obj,allowNull)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须输入!",obj);
return true;
}
if (!ifDigit(obj.value))
{
return false;
}
if (obj.value < "01" || obj.value > "31")
{
return showMsg("日格式有误,正确的格式为:DD,如:02",obj);
}
return true;
}
// b-4 isMoneth(Object,allowNull)
function isMonth(obj,allowNull)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须输入!",obj);
return true;
}
if (!ifDigit(obj.value))
{
return false;
}
if (obj.value < "01" || obj.value > "12")
{
return showMsg("月份格式有误,正确的格式为:MM,如:01",obj);
}
}
//建立者:默认
//功能:检查是否合法年份
//示例:isYear(Object)
//输入参数:被检查字符串
//输出参数:true 或 错误信息
// b-5 isYear(Object)
function isYear(obj,allowNull)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须输入!",obj);
return true;
}
slen=obj.value.length;
if (!ifDigit(obj.value))
{
return showMsg("日期有误,不能含有非数字的字符!",obj);
}
if (obj.value < "1800" || slen < 4)
{
return showMsg("年份格式有误,正确的格式为:YYYY,如:1999",obj);
}
}
//建立者:默认
//功能:检查是否合法日期
//示例:isDate(Object)
//输入参数:被检查字符串
//输出参数:true 或 错误信息
// b-6 isDate(Object)
function isDate(obj,allowNull)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须输入!",obj);
return true;
}
slen=obj.value.length;
if (!ifDigit(obj.value))
{
return showMsg("日期有误,不能含有非数字的字符!",obj);
}
else if (slen < 8)
{
return showMsg("日期格式有误,正确的格式为:YYYYMMDD,如:19990102",obj);
}
cc = obj.value.substr(0,4);
if (cc < "1800")
{
return showMsg("年份格式有误,正确的格式为:YYYY,如:1999",obj);
}
cc = obj.value.substr(4,2);
if (cc < "01" || cc > "12")
{
return showMsg("月份格式有误,正确的格式为:MM,如:01",obj);
}
cc = obj.value.substr(6,2);
if (cc < "01" || cc > "31")
{
return showMsg("日格式有误,正确的格式为:DD,如:02",obj);
}
return true;
}
// b-7 isEmail(Object)
function isEmail(obj,allowNull)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须输入!",obj);
return true;
}
i=obj.value.indexOf("@");
j=obj.value.lastIndexOf(".");
// if (! ifGBK(obj)) i = -1;
if (i == -1 || j == -1 || i > j)
{
return showMsg("电子邮件书写有误!",obj);
}
return true;
}
// b-8 isPhone(Object)
function isPhone(obj,allwoNull)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allwoNull){
return showMsg("必须输入!",obj);
}
return true;
}
for (i=0; i<slen; i++){
cc = obj.value.charAt(i);
if ((cc <"0" || cc >"9") && cc != "-" && cc!="+" && cc!="(" && cc !=")" && cc !="/")
{
return showMsg("电话号码含有非法字符!",obj);
}
}
return true;
}
// b-9 isGBK(Object,allowNull,msgname)
function isGBK(obj,allowNull,msgname)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须输入" + msgname + "!",obj);
return true;
}
for (i=0; i<slen; i++){
cc = obj.value.charAt(i);
cc = escape(cc);
if (cc.indexOf("%u") >= 0)
{
return showMsg( msgname + " 不能为汉字!",obj);
}
}
return true;
}
//建立者:Beau Virgill
//判断字符串是否为合法钱数
// b-10 isMoney(Object,allowNull)
function isMoney(obj,allowNull)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须输入!",obj);
return true;
}
if (ifMoney(obj.value))
{
return true;
}
else
{
return showMsg("不是合法的货币数!",obj);
}
return true;
}
//建立者:Beau Virgill
//判断是否合法钱数且是否超过限定额度
//b-11 isMoneyRange(obj,minValue,maxValue)
function isMoneyRange(obj,minValue,maxValue,allowNull)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须输入!",obj);
return true;
}
obj.value=trim(obj.value);
if(obj.value=="") return true;
if(!ifMoney(obj.value))
return shoMsg("不是合法的货币数!",obj);
if(parseFloat(obj.value)>=maxValue)
return showMsg("货币值过大!",obj);
if(parseFloat(obj.value)<minValue)
return showMsg("货币值过小!",obj);
return true;
}
//建立者:
//功能: 检查字段长度是否在指定范围内
//示例: chekLeng(form1.t1, 4,10)
//输入参数: 需要检查的表单对象名称,最小长度,最大长度
//输出参数: true
// b-12 checkLeng(obj, min, max,allowNull)
function checkLeng(obj, min, max,allowNull , msgname )
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须输入" + msgname + "!",obj);
return true;
}
if (slen < min)
{
return showMsg("请最少输入 " + min + " 个字符!",obj);
}
if (slen > max)
{
return showMsg(msgname + "请最多输入 " + max + " 个英文字符或"+max/2+"个中文字符!",obj);
}
return true;
}
//建立者:Beau Virgill
//功能:对日期进行全面的检查
//输入参数:yyObject:年的object;mmObject:月的object;ddObject:日的object;
//输入参数:allowNull:true允许日期为空;false:必须选择日期
//输出参数:ture of false;
// b-13.1 checkValiDate(mmObject,ddObject,yyObject,allowNull)
function checkValidDate(yyObject,mmObject,ddObject,allowNull){
if(allowNull){
if(!(((!yyObject.options[0].selected)&&(!mmObject.options[0].selected)&&(!ddObject.options[0].selected)) || ((yyObject.options[0].selected)&&(mmObject.options[0].selected)&&(ddObject.options[0].selected))))
return showMsg("日期必须全部选择或者全部不选择!",yyObject);
}else{
if(yyObject.options[0].selected){
return showMsg("请选择日期的年!",yyObject);
}
if(mmObject.options[0].selected){
return showMsg("请选择日期的月!",mmObject);
}
if(ddObject.options[0].selected){
return showMsg("请选择日期的日!",ddObject);
}
}
if(!yyObject.options[0].selected){
var my_year=yyObject[yyObject.selectedIndex].value;
var my_month=mmObject[mmObject.selectedIndex].value;
var my_day=ddObject[ddObject.selectedIndex].value;
if(!checkMonthLength(my_month,my_day,my_year))
return showMsg("选择的日期不合法!",ddObject);
}
return true;
}
//建立者:Beau Virgill
//功能:对日期进行全面的检查
//输入参数:yyObject1:其始年的object;mmObject1:其始月的object;ddObject1:其始日的object;
//输入参数:allowNull1:起始日期true允许日期为空;false:必须选择日期
//输入参数:yyObject2:截止年的object;mmObject2:截止月的object;ddObject2:截止日的object;
//输入参数:allowNull2:截止日期true允许日期为空;false:必须选择日期
//输出参数:ture of false;
// b-13.2 checkValidDateRange(mmObject1,ddObject1,yyObject1,allowNull1,mmObject2,ddObject2,yyObject2,allowNull2)
function checkValidDateRange(yyObject1,mmObject1,ddObject1,allowNull1,yyObject2,mmObject2,ddObject2,allowNull2){
if(!checkValidDate(mmObject1,ddObject1,yyObject1,allowNull1)) return false;
if(!checkValidDate(mmObject2,ddObject2,yyObject2,allowNull2)) return false;
if((!yyObject1.options[0].selected) && (!yyObject2.options[0].selected)){
date1=new Date(yyObject1-1900,mmObject1-1,ddObject1);
date2=new Date(yyObject2-1900,mmObject2-1,ddObject2);
if(date1>date2){
return showMsg("起始日期不能大于截止日期!",yyObject1);
}
}
return true;
}
//建立者:Beau Virgill
//功能:显示提示信息Msg,光标焦点落在Obj上,返回false
// 主要用于检查必要字段是否正确
//示例:showMsg("用户名不能为空.",myform.username)
//输入参数:Msg(提示信息) Obj(光标焦点对象)
//输出参数:false
// b-15 showMsg(String, Object)
function showMsg(Msg, Obj)
{
alert( Msg );
Obj.focus();
return false;
}
//是否为手机号码
function isMobile(obj,allwoNull)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allwoNull){
return showMsg("必须输入!",obj);
}
return true;
}
for (i=0; i<slen; i++){
cc = obj.value.charAt(i);
if ((cc <"0" || cc >"9") && cc != "-" && cc!="+" && cc!="(" && cc !=")" && cc !="/")
{
return showMsg("手机号码含有非法字符!",obj);
}
}
if(slen != 11)
return showMsg("手机号码长度不正确!",obj);
tempNo = obj.value.substring(0, 4)*1;
if (tempNo >= 1300 && tempNo <= 1399)
return true;
else
return showMsg("手机号码不正确!",obj);
return true;
}
// b-17 checkGBK(Object,allowNull,msgname)
function checkGBK(obj,allowNull,msgname)
{
obj.value=trim(obj.value);
slen=obj.value.length;
if(slen==0){
if(!allowNull)
return showMsg("必须输入" + msgname + "!",obj);
return true;
}
for (i=0; i<slen; i++){
cc = obj.value.charAt(i);
cc = escape(cc);
if (!(cc.indexOf("%u") >= 0))
{
return showMsg( msgname + " 必须为汉字!",obj);
}
}
return true;
}
// b-18 isPhone(Object,allowNull,msgname)
function isPhone(obj,allwoNull,msgname)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allwoNull){
return showMsg("必须输入!",obj);
}
return true;
}
for (i=0; i<slen; i++){
cc = obj.value.charAt(i);
if ((cc <"0" || cc >"9") && cc != "-" && cc!="+" && cc!="(" && cc !=")" && cc !="/")
{
return showMsg( msgname + "含有非法字符!",obj);
}
}
return true;
}
//b-19 isMobile(obj,allwoNull,msgname)是否为手机号码
function isMobile(obj,allwoNull,msgname)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allwoNull){
return showMsg("必须输入!",obj);
}
return true;
}
for (i=0; i<slen; i++){
cc = obj.value.charAt(i);
if ((cc <"0" || cc >"9") && cc != "-" && cc!="+" && cc!="(" && cc !=")" && cc !="/")
{
return showMsg(msgname+"含有非法字符!",obj);
}
}
if(slen != 11)
return showMsg(msgname+"长度不正确!",obj);
tempNo = obj.value.substring(0, 4)*1;
if (tempNo >= 1300 && tempNo <= 1399)
return true;
else
return showMsg(msgname+"不正确!",obj);
return true;
}
// b-20 isEmail(Object,allwoNull,msgname)
function isEmail(obj,allowNull,msgname)
{
obj.value=trim(obj.value);
slen=getLength(obj.value);
if(slen==0){
if(!allowNull)
return showMsg("必须输入!",obj);
return true;
}
i=obj.value.indexOf("@");
j=obj.value.lastIndexOf(".");
// if (! ifGBK(obj)) i = -1;
if (i == -1 || j == -1 || i > j)
{
return showMsg(msgname+"书写有误!",obj);
}
return true;
}
// b-21 checkCompareDate(objbegintime,objendtime,msgbeginname,msgendname,ischecknow)
function checkCompareDate(objbegintime,objendtime,msgbeginname,msgendname,ischecknow){
var flag = false;
var sttime = objbegintime.value;
var endtime = objendtime.value;
var today = new Date();
var year = today.getYear();
var month = today.getMonth() + 1;
if(parseInt(month)<10){
month = "0" + parseInt(month);
}
var day = today.getDate();
if(parseInt(day)<10){
day = "0" + parseInt(day);
}
var cur = year + "-" + month + "-" + day;
if(ischecknow) {
if(sttime > cur){
alert("尊敬的用户,您输入的"+msgbeginname+"应小于当前时间!");
objbegintime.focus();
return false;
}
}
if(sttime>endtime && endtime != ""){
alert("尊敬的用户,您输入的"+msgbeginname+"应小于"+msgendname+"!");
objbegintime.focus();
return false;
}
return true;
}
/**
以下是第三类
*/
//建立者:Beau Virgill
//加入了汉字的长度判断
// c-1 getLength(String)
function getLength(str){
var templen=str.length;
if(navigator.appName=='Netscape') return templen;
for(var i=0;i<str.length;i++){
var rstr=escape(str.substring(i,i+1));
if (rstr.substring(0,2)=="%u"){
templen++;
}
}
return templen;
}
//建立者:Beau Virgill
//功能:去掉字符串前后的空格并返回
//输入参数:inputStr(待处理的字符串)theForm.mobile
//输出参数:inputStr(处理后的字符串)
// c-2 trim(String)
function trim(inputStr) {
var result = inputStr;
while (result.substring(0,1) == " ") {
result = result.substring(1,result.length);
}
while (result.substring(result.length-1, result.length) == " ") {
result = result.substring(0, result.length-1);
}
return result;
}
//建立者:Beau Virgill
//功能:将form中所有的text文本进行trim操作。
//输入参数:myform(form名)
//输出参数:无
// c-3 textTrim(form名称)
function textsTrim(myform){
for(var i=0;i<myform.elements.length;i++){
var etype=myform.elements[i].type;
if(etype = "text"){
myform.elements[i].value=trim(myform.elements[i].value);
}
}
}
function matchForbiddenCharacter( matchstr )
{
var backStr = false;
matchstr = replaceGBK( matchstr ) ;
var re = /[^A-Za-z0-9_\.]/
if ( re.test( matchstr )==true ) {
backStr = true;
}
return backStr;
}
function replaceGBK(obj)
{
var reStr = "";
slen=obj.length;
for (i=0; i<slen; i++){
cc = obj.charAt(i);
if ( cc == ' ' )
{
cc = '_' ;
}
else
{
cc = escape(cc);
if (cc.indexOf("%u") > -1)
{
cc = '_';
}
}
reStr += cc;
}
return reStr;
}
//建立者:Beau Virgill
//功能:鼠标移到对象上,改变指鼠标针,对象的背景颜色。
//输入参数:src对象ID,clrOver背景颜色,status为1表示改变指针样式,非1不改变
//输出参数:无
function mOvr(src,clrOver,status){
if (!src.contains(event.fromElement)) {
if(status==1)
{
src.style.cursor = 'hand';
}
src.bgColor = clrOver;
}
}
//建立者:Beau Virgill
//功能:鼠标从对象上移出,改变指鼠标针,对象的背景颜色。
//输入参数:src对象ID,clrOver背景颜色,status为1表示改变指针样式,非1不改变
//输出参数:无
function mOut(src,clrIn,status) {
if (!src.contains(event.toElement)) {
if(status==1)
{
src.style.cursor = 'default';
}
src.bgColor = clrIn;
}
}
//建立者:Beau Virgill
//功能:验证数字和字母
//输入参数:str 字符串
//输出参数:boolean
function validateCharAndNumber(str){
if(str==""){
return false;
}
var myReg =/^[A-Za-z0-9]+$/;
if(myReg.test(str)){
return true;
}
return false;
}
//建立者:Beau Virgill
//功能:验证数字
//输入参数:str 字符串
//输出参数:boolean
function validateNumber(str){
if(str==""){
return false;
}
var myReg =/^[0-9]+$/;
if(myReg.test(str)){
return true;
}
return false;
}
//建立者:Beau Virgill
//功能:检测邮件地址
//输入参数:str 字符串
//输出参数:boolean
function validateEmail(str){
if(str==""){
return false;
}
var myReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
if(myReg.test(str)){
return true;
}
return false;
}
//建立者:Beau Virgill
//功能:检测是否是移动的手机号
//输入参数:str 字符串
//输出参数:boolean
function validateMobileNum2(str){
if(str==""){
return false;
}
var myReg = /^(134|135|136|137|138|139|153|158|159|150|151|152|157|188|147|187|182)\d{8}$/;
if(myReg.test(str)){
return true;
}
return false;
}
//建立者:Beau Virgill
//功能:检测手机号
//输入参数:str 字符串
//输出参数:boolean
function validateMobileNum(str){
if(str==""){
return false;
}
var myReg = /^(134|135|136|137|138|139|153|158|159|150|151|152|157|188|147|187|182)\d{8}$/;
if(myReg.test(str)){
return true;
}
return false;
}
//建立者:Beau Virgill
//功能:验证日期格式
//输入参数:str 字符串
//输出参数:boolean
function isDate(str){
if(str==""){
return false;
}
var myReg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
if(myReg.test(str)){
return false;
}
return true;
}
//建立者:Beau Virgill
//功能:验证邮政编码
//输入参数:str 字符串
//输出参数:boolean
function validateZipCode(str){
if(str==""){
return false;
}
var myReg = /^[1-9]\d{5}$/;
if(myReg.test(str)){
return true;
}
return false;
}
//建立者:Beau Virgill
//功能:检查电话号码或小灵通用户
//输入参数:str 字符串
//输出参数:boolean
function validatePhone(str){
if(str==""){
return false;
}
var myReg = /\d{3}-\d{8}|\d{4}-\d{7}|\d{3}-\d{7}|\d{4}-\d{8}/;
if(myReg.test(str)){
return true;
}
return false;
}
//建立者:Beau Virgill
//功能:检测是否为联通的手机号
//输入参数:str 字符串
//输出参数:boolean
function isMobileByLianTong(str){
if(str==""){
return false;
}
var myReg = /^(130|131|132|133)\d{8}$/;
if(myReg.test(str)){
return true;
}
return false;
}
//检测float数据类型
function checkFloat(str)
{
if(str==""){
return false;
}
var myReg = /^\d{1,7}.\d{2}$/;
if(myReg.test(str)){
return true;
}
return false;
}
//建立者:Beau Virgill
//功能:复选框全选
//输入参数:e为全选 ,itemName为复选框名
//输出参数:无
function checkAll(e, itemName)
{
var aa = document.getElementsByName(itemName);
for (var i=0; i<aa.length; i++)
{
aa[i].checked = e.checked;
}
}
function checkItem(e, allName)
{
var all = document.getElementsByName(allName)[0];
if(!e.checked) all.checked = false;
else
{
var aa = document.getElementsByName(e.name);
for (var i=0; i<aa.length; i++)
if(!aa[i].checked) return;
all.checked = true;
}
}
//检测复选框的状态,全否return false,else return true
function IscheckAllBox(itemName)
{
var aa = document.getElementsByName(itemName);
for (var i=0; i<aa.length; i++)
{
if(aa[i].checked)return true;
}
return false;
}
function submitForm(){
var hasselected = false;
var elems = theform.idList;
for( var i=0;i<elems.length;i++ ){
if( elems[i].checked ){
hasselected = true;
}
}
if( !hasselected ){
alert( "至少选择一条删除数据!" );
return false;
}
theform.action = "beforeDelGroupTsysAdStation.do";
theform.submit();
}
function selectAllNode(aform,v){
if(aform != null){
var elems = aform.elements;
for(var i=0;i<elems.length;i++){
if(elems[i].type == "checkbox")
elems[i].checked = v;
}
}
}
//截取标题sum字符个数
function getNewsTitle(str,sum){
var rstr=str;
var len=0;
len=getStrLength(rstr);
if(len>sum){
var templen=0;
var result="";
for(var i=0;i<rstr.length;i++){
templen++
var tempstr=escape(rstr.substring(i,i+1));
if (tempstr.substring(0,2)=="%u"){
templen++;
}
result+=rstr.substring(i,i+1);
if(templen>=(sum-2)){
break;
}
}
return result+'…';
}else{
return rstr;
}
}
//按单字节计算字符串的长度
function getStrLen(str){
var len = 0;
var cnstrCount = 0;
for(var i = 0 ; i < str.length ; i++){
if(str.charCodeAt(i)>255)
cnstrCount = cnstrCount + 1 ;
}
len = str.length + cnstrCount;
return len;
}
function getStrLength(str){
var templen=str.length;
if(navigator.appName=='Netscape') return templen;
for(var i=0;i<str.length;i++){
var rstr=escape(str.substring(i,i+1));
if (rstr.substring(0,2)=="%u"){
templen++;
}
}
return templen;
}
//建立者:Beau Virgill
//获取当前max年内的年份
//参数selectBox为下拉框的名称,max 为范围
//输出option元素
function getOptionByYear(selectBox,max){
//当前日期
d = new Date();
for(i =0 ; i < max ; i++){
myYear = d.getYear()+ 1 + i - max;
selectBox.options[selectBox.length] = new Option( myYear,myYear);
if(i == (max - 1)){
selectBox.options[i + 1].selected = true;
}
}
}
//建立者:Beau Virgill
//对当前日期做默认选中处理
//参数selectBox为下拉框的名称,dis为需要默认的月份与当前的月份距离,如果在当前月份之前,则为负数(-1,-2....)否则为(1,2....)当前为0
//输出option元素
//调用方式:getOptionByMonth(form1.selectBox, -1)
function getOptionByMonth(selectBox,dis){
d = new Date();
var month = d.getMonth() + 1;
for(var i = 0 ; i < selectBox.length ; i ++){
if(selectBox.options[i].value == (month + dis)){
selectBox.options[i].selected = true;
}
}
}
//建立者:Beau Virgill
//按比率打开一个showModalDialog窗口
//url为打开的链接,bl为相当与屏幕的比率 如0.8,就是百分之八十
//returnvalue可以返回一个对象
function showModalWindow(url,bl){
var h = screen.availHeight*bl;
var w = screen.availWidth*bl;
var returnvalue=showModalDialog(url,'tempwindow',"status:no;resizable:no;help:no;dialogHeight:"+ h +"px; dialogWidth:"+w + "px");
return returnvalue;
}
//建立者:Beau Virgill
//转换月份,将一位的月份转换成二位的月份,如:1转换成01
function converMonth(str){
if(str.length==1){
return "0"+str;
}else{
return str;
}
}
//建立者:Beau Virgill
//根据主列表的变化加载子列表
//locationObj主列表对象,targetObj子列表对象,sublist数组
function changelocation(locationObj,targetObj,sublist)
{
targetObj.length = 0;
targetObj.options[targetObj.length] = new Option("请选择", "");
var locationid=locationObj.value;
if(locationid!=""){
for (var i=0;i < sublist.length; i++)
{
if (sublist[i][2] == locationid)
{
targetObj.options[targetObj.length] = new Option(sublist[i][1], sublist[i][0]);
}
}
}
}
//建立者
//如果TEMP参数有值,将TEMP设置selected
//locationObj主列表对象,targetObj子列表对象,sublist数组,TEMP值
function changelocation2(locationObj,targetObj,sublist,temp)
{
targetObj.length = 0;
targetObj.options[targetObj.length] = new Option("请选择", "");
var locationid=locationObj.value;
if(locationid!=""){
for (var i=0;i < sublist.length; i++)
{
if (sublist[i][2] == locationid)
{
targetObj.options[targetObj.length] = new Option(sublist[i][1], sublist[i][0]);
if(temp != null && temp != ''){
if(sublist[i][0] == temp){
targetObj.options[targetObj.length-1].selected = true;
}
}
}
}
}
}