js常用方法

来源:互联网 发布:单片机输出脉冲信号 编辑:程序博客网 时间:2024/04/26 20:34
 

文本框只能输入数字:<input type="text" name="cityNumber" style="width:115px;"
     onkeyup="this.value=this.value.replace(/\D/g,'');"
     onafterpaste="this.value=this.value.replace(/\D/g,'')">

// JavaScript Document
/*------------------------------------------------------------
 Trim()去左右空格,LTrim()去左空格,Rtrim()去右空格
------------------------------------------------------------*/
String.prototype.Trim = function(){
    return this.replace(/(^\s*)|(\s*$)/g, "");
};
String.prototype.LTrim = function(){
    return this.replace(/(^\s*)/g, "");
};
String.prototype.Rtrim = function(){
    return this.replace(/(\s*$)/g, "");
};
/*------------------------------------------------------------
 得到字符串的字节长度,一个汉子长度为2,一个英文字母为1
------------------------------------------------------------*/
String.prototype.getBytesLength = function(){
 var cArr = this.match(/[^\x00-\xff]/ig);
    return this.length + (cArr == null ? 0 : cArr.length);
}
/*------------------------------------------------------------
 是否为空字符 value:字符串,返回:空值==true,有值==false
------------------------------------------------------------*/
function isNullStr(value){
 return value.Trim()==""?true:false;
}
/*------------------------------------------------------------
 制止Ctrl+C
------------------------------------------------------------*/
function nocopy(){
 event.returnValue=false;
}
/*------------------------------------------------------------
 限制长度 value:字符串,maxlen:最大长度;返回:true==小于
------------------------------------------------------------*/
function chkLength(value,maxlen){
 return value.length>maxlen?false:true;
}
/*------------------------------------------------------------
 只能是数字
------------------------------------------------------------*/
function onlyNum(){
 if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)||event.keyCode==8))  
  event.returnValue=false;
}
/*------------------------------------------------------------
 只能是正负整数
------------------------------------------------------------*/
function onlyNegativeNum(){
 if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)||event.keyCode==8||event.keyCode==189))
  event.returnValue=false;
}
/*------------------------------------------------------------
 只能是数字和逗号
------------------------------------------------------------*/
function onlyNumOrComma(){
 if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)||event.keyCode==188||event.keyCode==8))  
  event.returnValue=false;
}
/*------------------------------------------------------------
 只能是字母
------------------------------------------------------------*/
function onlyEng(){
 if(!(event.keyCode>=65&&event.keyCode<=90))
  event.returnValue=false;
}
/*------------------------------------------------------------
 只能是小数
------------------------------------------------------------*/
function onlyFloat(){
 var realKey = String.fromCharCode(event.keyCode)
 var myReg = /^(-|\+)?\d+(((\.\d+)|(\.))|((\/\d+)|(\/)))?$/;
 if (myReg.test(event.srcElement.value + realKey) == false)
  event.returnValue=false;
}
/*------------------------------------------------------------
 E-Mail验证 正确为true
------------------------------------------------------------*/
function isEmail(email){
 var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
 return reg.test(email);
}
/*------------------------------------------------------------
 固定电话验证,区号与分号之间用 - 号分隔 正确为true
------------------------------------------------------------*/
function isphone(inpurStr){
 var p=/^((0\d{2,3})-)?(\d{7,8})(-(\d{3,4}))?$/;
 return p.test(inpurStr);
}
/*------------------------------------------------------------
 手机号码验证 正确为true
------------------------------------------------------------*/
function istel(inpurStr){
 reg=/^1[3,5,8]\d{9}$/gi;
 return reg.test(inpurStr);
}
/*------------------------------------------------------------
 判断字符串是否存在 存在true
------------------------------------------------------------*/
function isStrExist(src,str) {
 return src.indexOf (str) != -1?true:false;
}
/*------------------------------------------------------------
 获取文件大小 返回字节数
------------------------------------------------------------*/
function getFileSize(fileName){ 
 if(document.all){
  window.oldOnError = window.onerror;         
  window.onerror = function(err){
   if(err.indexOf('utomation') != -1){
    //alert("can't access file");
    return true;
   }else
    return false;
  };
  var fso = new ActiveXObject('Scripting.FileSystemObject');
  var file = fso.GetFile(fileName);
  window.onerror = window.oldOnError;
     return file.Size;
    }
}

/*------------------------------------------------------------
 汉字转ASCII码
------------------------------------------------------------*/
function native2ascii(native_value){
 var regexp =/[^\x00-\xff]/g;
 var a  =  native_value;
 var m="";
 while (m=regexp.exec(native_value)){
  a=a.split(m[0]).join(escape(m[0]).split('%').join('\\'));
 }
 return a;
}

/*------------------------------------------------------------
 ASCII码转汉字
------------------------------------------------------------*/
function ascii2native(ascii_value){
 var n=ascii_value;
 n =unescape(n.split('\\').join('%'));
 return  n;
}
/*------------------------------------------------------------
 删除控件 ctrlID:控件ID
------------------------------------------------------------*/
function delContrl(ctrlID){
 try{
 var t = document.getElementById(ctrlID);
 t.removeNode(true);
 }catch(err){}
}
/*------------------------------------------------------------
 得到下拉框当前选中的一项 obj:下拉框控件对象 通过obj.value与obj.text来取值
------------------------------------------------------------*/
function getSelectedOption(obj){
 var selectObj = {value:obj.value,text:obj.options[obj.selectedIndex].text};
 return selectObj;
}
/*------------------------------------------------------------
 得到下拉框当前选中的所有项 obj:下拉框控件对象 返回数组,通过obj[i].value与obj[i].text来取值
------------------------------------------------------------*/
function getSelectedOptions(obj){
 var myArray=new Array();
 var num=0;
 for(var i=0;i<obj.length;i++){
  var temp = obj.options[i];
  if(temp.selected){
   myArray[num]=temp;
   num++;
  }
 }
 return myArray;
}
/**------------------------------------------------------------
 得到下拉框所有项 obj:下拉框控件对象 ,返回数组,通过obj[i].value与obj[i].text来取值
------------------------------------------------------------*/
function getAllOptions(obj){
 var myArray=new Array();
 for(var i=0;i<obj.length;i++){
  var temp = obj.options[i];
  myArray[i]=temp;
 }
 return myArray;
}
/*------------------------------------------------------------
 增加下拉框选项 obj:下拉框控件对象,value:值,text:显示内容
------------------------------------------------------------*/
function addoption(obj,value,text){
 obj.options.add(new Option(text,value));
}
/*------------------------------------------------------------
 删除下拉框选中项 obj:下拉框控件对象,返回下拉框中还有多少选项
------------------------------------------------------------*/
function delOption(obj){
 for(var i=0;i<obj.length;i++){
  var temp = obj.options[i];
  if(temp.selected){
   obj.remove(i);
   i--;
  }
 }
 return obj.length;
}
/*------------------------------------------------------------
 得到下拉框所有选项的值集合,以逗号隔开 obj:下拉框控件对象
------------------------------------------------------------*/
function getSelectAllValue(obj){
 var str="";
 for(var i=0;i<obj.length;i++){
  str+=obj.options[i].value;
  if(i!=yslist.length-1){
   str+=",";
  }
 }
 return str;
}
/*------------------------------------------------------------
 设置所有月份 obj:下拉框控件对象
------------------------------------------------------------*/
function setAllMonth(obj){
 obj.length=0;
 for(var i=1;i<=12;i++){
  addoption(obj,i,i);
 }
}
/*------------------------------------------------------------
 设置该月有多少天 obj:下拉框控件对象,year:设置年份,month:设置月份
------------------------------------------------------------*/
function setAllDay(obj,year,month){
 obj.length=0;
 var count = new Date(year , month , 0).getDate();
 for(var i=1;i<=count;i++){
  addoption(obj,i,i);
 }
}
/*------------------------------------------------------------
 设置所有小时 obj:下拉框控件对象
------------------------------------------------------------*/
function setAllHour(obj){
 obj.length=0;
 for(var i=0;i<=24;i++){
  addoption(obj,i,i);
 }
}
/*------------------------------------------------------------
 设置所有分钟 obj:下拉框控件对象
------------------------------------------------------------*/
function setMinOrSec(obj){
 obj.length=0;
 for(var i=0;i<=60;i++){
  addoption(obj,i,i);
 }
}
/*------------------------------------------------------------
 查看下拉框是否存在该值 obj:下拉框控件对象,value:比较的值
------------------------------------------------------------*/
function chkOption(obj,value){
 for(var i=0;i<obj.length;i++){
  if(obj.options[i].value==value){
   return true;
  }
 }
 return false;
}
/*------------------------------------------------------------
 检查后缀名是否正确 filename:文件全路径名,arr:比较的值,数组,return:正确==true;
------------------------------------------------------------*/
function chkHouz(filename,arr){
 try{
  var houz=filename.substring(filename.lastIndexOf('.'),filename.length);
  houz=houz.toLowerCase();
  for(var i=0;i<arr.length;i++){
   if(houz==arr[i].toLowerCase()){
    return true;
   }
  }
  return false;
 }catch(err){return false;}
}
/*------------------------------------------------------------
 地址转向;
------------------------------------------------------------*/
function toUrl(url){
 window.location.href=url;
}
/*------------------------------------------------------------
 打开地址对话窗;
------------------------------------------------------------*/
function showWinDialog(url,width,height){
 var retValue=window.showModalDialog(url,"","help:0;resizable:0;status=0;scrollbars=1;dialogWidth="+width+";dialogHeight="+height+";center=true");
 return retValue;
}

function limitLength(obj,countLength){
 if(obj.value.length>countLength){
  obj.value=obj.value.substring(0,countLength);
 }
}

/*------------------------------------------------------------
 获取路径; 如:在http://localhost:8080/test/dir/test.html,则返回'../'
------------------------------------------------------------*/
function getRelativePath(){
 var url = location.href;//当前url
 var path = url.length - url.replace(/\//g,"").length - 4;
 
 //层次为url包含/的长度-没有包含/的长度再减去项目头/的个数(如:http://hi.baidu.com/54fbj/)
 var str = "";
 for(var i = 0; i < path; i++){
    str += "../";//组合成一个相对路径的字符串返回
 }
 return str;
}
/*------------------------------------------------------------
身份证验证
------------------------------------------------------------*/
var vcity={ 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:"国外"
};
 function checkCards(obj){
 var card =obj.value;
    // 是否为空
    if(card === ''){
     alert('请输入身份证号,身份证号不能为空');
       // obj.focus();
        return false;
    }
    // 校验长度,类型
    if(isCardNo(card) === false){
     alert('您输入的身份证号码不正确,请重新输入');
        // obj.focus();
        return false;
    }
    // 检查省份
    if(checkProvince(card) === false){
     
     alert('您输入的身份证号码不正确,请重新输入');
        // obj.focus();
        return false;
    }
    // 校验生日
    if(checkBirthday(card) === false){
     alert('您输入的身份证号码生日不正确,请重新输入');
       // obj.focus();
        return false;
    }
    // 检验位的检测
    // if(checkParity(card) === false){
        // alert('您的身份证校验位不正确,请重新输入');
        // obj.focus();
       // return false;
   // }
    return true;
};


// 检查号码是否符合规范,包括长度,类型
isCardNo = function(card){
    // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
    var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;
    if(reg.test(card) === false){
        return false;
    }
    return true;
}

// 取身份证前两位,校验省份
checkProvince = function(card){
    var province = card.substr(0,2);
     if(vcity[province] == undefined)
    {
        return false;
    }
    return true;
};

// 检查生日是否正确
checkBirthday = function(card){
    var len = card.length;
    // 身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字
    if(len == '15') {
        var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;
        var arr_data = card.match(re_fifteen);
        var year = arr_data[2];
        var month = arr_data[3];
        var day = arr_data[4];
        var birthday = new Date('19'+year+'/'+month+'/'+day);
        return verifyBirthday('19'+year,month,day,birthday);
    }
    // 身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为X
    if(len == '18')
    {
        var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
        var arr_data = card.match(re_eighteen);
        var year = arr_data[2];
        var month = arr_data[3];
        var day = arr_data[4];
        var birthday = new Date(year+'/'+month+'/'+day);
        return verifyBirthday(year,month,day,birthday);
    }
    return false;
};

// 校验日期
verifyBirthday = function(year,month,day,birthday){
    var now = new Date();
    var now_year = now.getFullYear();
    // 年月日是否合理
    if(birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day)
    {
        // 判断年份的范围(3岁到100岁之间)
        var time = now_year - year;
        if(time >= 3 && time <= 100)
        {
            return true;
        }
        return false;
    }
    return false;
};

// 校验位的检测
checkParity = function(card){
    // 15位转18位
    card = changeFivteenToEighteen(card);
    var len = card.length;
    if(len == '18'){
        var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
        var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
        var cardTemp = 0, i, valnum;
        for(i = 0; i < 17; i ++)
        {
            cardTemp += card.substr(i, 1) * arrInt[i];
        }
        valnum = arrCh[cardTemp % 11];
        if (valnum == card.substr(17, 1))
        {
            return true;
        }
        return false;
    }
    return false;
};

// 15位转18位身份证号
changeFivteenToEighteen = function(card){
    if(card.length == '15'){
        var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
        var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
        var cardTemp = 0, i;  
        card = card.substr(0, 6) + '19' + card.substr(6, card.length - 6);
        for(i = 0; i < 17; i ++)
        {
            cardTemp += card.substr(i, 1) * arrInt[i];
        }
        card += arrCh[cardTemp % 11];
        return card;
    }
    return card;
};

/*------------------------------------------------------------
 转换显示内容
 例:text:1`显示1,2`显示2,3`显示3  value:2 返回:显示2
------------------------------------------------------------*/
function convertText(text,value){
 if(text.length>0){
  var arr = text.split(",");
  for(var i = 0; i < arr.length; i++){
   if(arr[i].split("`")[0]==value){
    return arr[i].split("`")[1];
   }
  }
 }
 return "";
}

原创粉丝点击