您好,欢迎访问一九零五行业门户网

100个不能错过的实用JS自定义函数_javascript技巧

1、原生javascript实现字符串长度截取
复制代码 代码如下:
function cutstr(str, len) {
    var temp;
    var icount = 0;
    var patrn = /[^\x00-\xff]/;
    var strre = ;
    for (var i = 0; i         if (icount             temp = str.substr(i, 1);
            if (patrn.exec(temp) == null) {
                icount = icount + 1
            } else {
                icount = icount + 2
            }
            strre += temp
        } else {
            break
        }
    }
    return strre + ...
}
2、原生javascript获取域名主机
复制代码 代码如下:
function gethost(url) {
    var host = null;
    if(typeof url == undefined|| null == url) {
        url = window.location.href;
    }
    var regex = /^\w+\:\/\/([^\/]*).*/;
    var match = url.match(regex);
    if(typeof match != undefined && null != match) {
        host = match[1];
    }
    return host;
}
3、原生javascript清除空格
复制代码 代码如下:
string.prototype.trim = function() {
    var reextraspace = /^\s*(.*?)\s+$/;
    return this.replace(reextraspace, $1)
}
4、原生javascript替换全部
复制代码 代码如下:
string.prototype.replaceall = function(s1, s2) {
    return this.replace(new regexp(s1, gm), s2)
}
5、原生javascript转义html标签
复制代码 代码如下:
function htmlencode(text) {
    return text.replace(/&/g, '&').replace(/\/g, '').replace(/, '/g, '>')
}
6、原生javascript还原html标签
复制代码 代码如下:
function htmldecode(text) {
    return text.replace(/&/g, '&').replace(//g, '\').replace(/, '/g, '>')
}
7、原生javascript时间日期格式转换
复制代码 代码如下:
date.prototype.format = function(formatstr) {
    var str = formatstr;
    var week = ['日', '一', '二', '三', '四', '五', '六'];
    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() + 1) > 9 ? (this.getmonth() + 1).tostring() : '0' + (this.getmonth() + 1));
    str = str.replace(/m/g, (this.getmonth() + 1));
    str = str.replace(/w|w/g, week[this.getday()]);
    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
}
8、原生javascript判断是否为数字类型
复制代码 代码如下:
function isdigit(value) {
    var patrn = /^[0-9]*$/;
    if (patrn.exec(value) == null || value == ) {
        return false
    } else {
        return true
    }
}
9、原生javascript设置cookie值
复制代码 代码如下:
function setcookie(name, value, hours) {
    var d = new date();
    var offset = 8;
    var utc = d.gettime() + (d.gettimezoneoffset() * 60000);
    var nd = utc + (3600000 * offset);
    var exp = new date(nd);
    exp.settime(exp.gettime() + hours * 60 * 60 * 1000);
    document.cookie = name + = + escape(value) + ;path=/;expires= + exp.togmtstring() + ;domain=360doc.com;
}
10、原生javascript获取cookie值
复制代码 代码如下:
function getcookie(name) {
    var arr = document.cookie.match(new regexp((^| ) + name + =([^;]*)(;|$)));
    if (arr != null) return unescape(arr[2]);
    return null
}
11、原生javascript加入收藏夹
复制代码 代码如下:
function addfavorite(surl, stitle) {
    try {
        window.external.addfavorite(surl, stitle)
    } catch(e) {
        try {
            window.sidebar.addpanel(stitle, surl, )
        } catch(e) {
            alert(加入收藏失败,请使用ctrl+d进行添加)
        }
    }
}
12、原生javascript设为首页
复制代码 代码如下:
function sethomepage() {
    if (document.all) {
        document.body.style.behavior = 'url(#default#homepage)';
        document.body.sethomepage('http://www.jq-school.com')
    } else if (window.sidebar) {
        if (window.netscape) {
            try {
                netscape.security.privilegemanager.enableprivilege(universalxpconnect)
            } catch(e) {
                alert(该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true)
            }
        }
        var prefs = components.classes['@mozilla.org/preferences-service;1'].getservice(components.interfaces.nsiprefbranch);
        prefs.setcharpref('browser.startup.homepage', 'http://www.jq-school.com')
    }
}
13、原生javascript判断ie6
复制代码 代码如下:
var ua = navigator.useragent.tolowercase();
var isie6 = ua.indexof(msie 6) > -1;
if (isie6) {
    try {
        document.execcommand(backgroundimagecache, false, true)
    } catch(e) {}
}
14、原生javascript加载样式文件
复制代码 代码如下:
function loadstyle(url) {
    try {
        document.createstylesheet(url)
    } catch(e) {
        var csslink = document.createelement('link');
        csslink.rel = 'stylesheet';
        csslink.type = 'text/css';
        csslink.href = url;
        var head = document.getelementsbytagname('head')[0];
        head.appendchild(csslink)
    }
}
15、原生javascript返回脚本内容
复制代码 代码如下:
function evalscript(s) {
  if(s.indexof('
16、原生javascript清除脚本内容
复制代码 代码如下:
function stripscript(s) {
  return s.replace(/.*?/ig, '');
}
17、原生javascript动态加载脚本文件
复制代码 代码如下:
function appendscript(src, text, reload, charset) {
  var id = hash(src + text);
  if(!reload && in_array(id, evalscripts)) return;
  if(reload && $(id)) {
    $(id).parentnode.removechild($(id));
  }  evalscripts.push(id);
  var scriptnode = document.createelement(script);
  scriptnode.type = text/javascript;
  scriptnode.id = id;
  scriptnode.charset = charset ? charset : (browser.firefox ? document.characterset : document.charset);
  try {
    if(src) {
      scriptnode.src = src;
      scriptnode. = false;
      scriptnode.onload = function () {
        scriptnode. = true;
        jsloaded[src] = 1;
      };
      scriptnode.onreadystatechange = function () {
        if((scriptnode.readystate == 'loaded' || scriptnode.readystate == 'complete') && !scriptnode. {
          scriptnode. = true;
          jsloaded[src] = 1;
        }
      };
    } else if(text){
      scriptnode.text = text;
    }
    document.getelementsbytagname('head')[0].appendchild(scriptnode);
  } catch(e) {}
}
18、原生javascript返回按id检索的元素对象
复制代码 代码如下:
function $(id) {
  return !id ? null : document.getelementbyid(id);
}
19、原生javascript返回浏览器版本内容
复制代码 代码如下:
function browserversion(types) {
  var other = 1;
  for(i in types) {
    var v = types[i] ? types[i] : i;
    if(useragent.indexof(v) != -1) {
      var re = new regexp(v + '(\\/|\\s)([\\d\\.]+)', 'ig');
      var matches = re.exec(useragent);
      var ver = matches != null ? matches[2] : 0;
      other = ver !== 0 && v != 'mozilla' ? 0 : other;
    }else {
      var ver = 0;
    }
    eval('browser.' + i + '= ver');
  }
  browser.other = other;
}
20、原生javascript元素显示的通用方法
复制代码 代码如下:
function $(id) {
  return !id ? null : document.getelementbyid(id);
}
function display(id) {
  var obj = $(id);
  if(obj.style.visibility) {
    obj.style.visibility = obj.style.visibility == 'visible' ? 'hidden' : 'visible';
  } else {
    obj.style.display = obj.style.display == '' ? 'none' : '';
  }
}
21、原生javascript中有insertbefore方法,可惜却没有insertafter方法?用如下函数实现
复制代码 代码如下:
function insertafter(newchild,refchild){
  var parelem=refchild.parentnode;
  if(parelem.lastchild==refchild){
    refchild.appendchild(newchild);
  }else{
    parelem.insertbefore(newchild,refchild.nextsibling);
  }
}
22、原生javascript中兼容浏览器绑定元素事件
复制代码 代码如下:
function addeventsamp(obj,evt,fn){
  if (obj.addeventlistener) {
    obj.addeventlistener(evt, fn, false);
  }else if(obj.attachevent){
    obj.attachevent('on'+evt,fn);
  }
}
23、原生javascript光标停在文字的后面,文本框获得焦点时调用
复制代码 代码如下:
function focuslast(){
  var e = event.srcelement;
  var r =e.createtextrange();
  r.movestart('character',e.value.length);
  r.collapse(true);
  r.select();
}
24、原生javascript检验url链接是否有效
复制代码 代码如下:
function geturlstate(url){
  var xmlhttp = new activexobject(microsoft.xmlhttp);
  xmlhttp.open(get,url, false);
  try{
    xmlhttp.send();
  }catch(e){
  }finally{
    var result = xmlhttp.responsetext;
    if(result){
      if(xmlhttp.status==200){
        return(true);
      }else{
        return(false);
      }
    }else{
      return(false);
    }
  }
}
25、原生javascript格式化css样式代码
复制代码 代码如下:
function formatcss(s){//格式化代码
  s = s.replace(/\s*([\{\}\:\;\,])\s*/g, $1);
  s = s.replace(/;\s*;/g, ;); //清除连续分号
  s = s.replace(/\,[\s\.\#\d]*{/g, {);
  s = s.replace(/([^\s])\{([^\s])/g, $1 {\n\t$2);
  s = s.replace(/([^\s])\}([^\n]*)/g, $1\n}\n$2);
  s = s.replace(/([^\s]);([^\s\}])/g, $1;\n\t$2);
  return s;
}
26、原生javascript压缩css样式代码
复制代码 代码如下:
function yasuocss (s) {//压缩代码
  s = s.replace(/\/\*(.|\n)*?\*\//g, ); //删除注释
  s = s.replace(/\s*([\{\}\:\;\,])\s*/g, $1);
  s = s.replace(/\,[\s\.\#\d]*\{/g, {); //容错处理
  s = s.replace(/;\s*;/g, ;); //清除连续分号
  s = s.match(/^\s*(\s+(\s+\s+)*)\s*$/); //去掉首尾空白
  return (s == null) ? : s[1];
}
27、原生javascript获取当前路径
复制代码 代码如下:
var currentpageurl = ;
if (typeof this.href === undefined) {
    currentpageurl = document.location.tostring().tolowercase();
}
else {
    currentpageurl = this.href.tostring().tolowercase();
}
28、原生javascriptip转成整型
复制代码 代码如下:
function _ip2int(ip){
    var num = 0;
    ip = ip.split(.);
    num = number(ip[0]) * 256 * 256 * 256 + number(ip[1]) * 256 * 256 + number(ip[2]) * 256 + number(ip[3]);
    num = num >>> 0;
    return num;
}
29、原生javascript整型解析为ip地址
复制代码 代码如下:
function _int2ip(num){
    var str;
    var tt = new array();
    tt[0] = (num >>> 24) >>> 0;
    tt[1] = ((num >> 24) >>> 0;
    tt[2] = (num >> 24;
    tt[3] = (num >> 24;
    str = string(tt[0]) + . + string(tt[1]) + . + string(tt[2]) + . + string(tt[3]);
    return str;
}
30、原生javascript实现checkbox全选与全不选
复制代码 代码如下:
function checkall() {
  var selectall = document.getelementbyid(selectall);
  var allbox = document.getelementsbyname(allbox);
  if (selectall.checked) {
    for (var i = 0; i       allbox[i].checked = true;
    }
  } else {
    for (var i = 0; i       allbox[i].checked = false;
    }
  }
}
注:移动篇 (31~40)
31、原生javascript判断是否移动设备
复制代码 代码如下:
function ismobile(){
  if (typeof this._ismobile === 'boolean'){
    return this._ismobile;
  }
  var screenwidth = this.getscreenwidth();
  var fixviewportsexperiment = renderermodel.runningexperiments.fixviewport || renderermodel.runningexperiments.fixviewport;
  var fixviewportsexperimentrunning = fixviewportsexperiment && (fixviewportsexperiment.tolowercase() === new);
  if(!fixviewportsexperiment){
    if(!this.isapplemobiledevice()){
      screenwidth = screenwidth/window.devicepixelratio;
    }
  }
  var ismobilescreensize = screenwidth   var ismobileuseragent = false;
  this._ismobile = ismobilescreensize && this.istouchscreen();
  return this._ismobile;
}
32、原生javascript判断是否移动设备访问
复制代码 代码如下:
function ismobileuseragent(){
  return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.useragent.tolowercase()));
}
33、原生javascript判断是否苹果移动设备访问
复制代码 代码如下:
function isapplemobiledevice(){
  return (/iphone|ipod|ipad|macintosh/i.test(navigator.useragent.tolowercase()));
}
34、原生javascript判断是否安卓移动设备访问
复制代码 代码如下:
function isandroidmobiledevice(){
  return (/android/i.test(navigator.useragent.tolowercase()));
}
35、原生javascript判断是否touch屏幕
复制代码 代码如下:
function istouchscreen(){
  return (('ontouchstart' in window) || window.documenttouch && document instanceof documenttouch);
}
36、原生javascript判断是否在安卓上的谷歌浏览器
复制代码 代码如下:
function isnewchromeonandroid(){
  if(this.isandroidmobiledevice()){
    var useragent = navigator.useragent.tolowercase();
    if((/chrome/i.test(useragent))){
      var parts = useragent.split('chrome/');      var fullversionstring = parts[1].split( )[0];
      var versionstring = fullversionstring.split('.')[0];
      var version = parseint(versionstring);
      if(version >= 27){
        return true;
      }
    }
  }
  return false;
}
37、原生javascript判断是否打开视窗
复制代码 代码如下:
function isviewportopen() {
  return !!document.getelementbyid('wixmobileviewport');
}
38、原生javascript获取移动设备初始化大小
复制代码 代码如下:
function getinitzoom(){
  if(!this._initzoom){
    var screenwidth = math.min(screen.height, screen.width);
    if(this.isandroidmobiledevice() && !this.isnewchromeonandroid()){
      screenwidth = screenwidth/window.devicepixelratio;
    }
    this._initzoom = screenwidth /document.body.offsetwidth;
  }
  return this._initzoom;
}
39、原生javascript获取移动设备最大化大小
复制代码 代码如下:
function getzoom(){
  var screenwidth = (math.abs(window.orientation) === 90) ? math.max(screen.height, screen.width) : math.min(screen.height, screen.width);
  if(this.isandroidmobiledevice() && !this.isnewchromeonandroid()){
    screenwidth = screenwidth/window.devicepixelratio;
  }
  var fixviewportsexperiment = renderermodel.runningexperiments.fixviewport || renderermodel.runningexperiments.fixviewport;
  var fixviewportsexperimentrunning = fixviewportsexperiment && (fixviewportsexperiment === new || fixviewportsexperiment === new);
  if(fixviewportsexperimentrunning){
    return screenwidth / window.innerwidth;
  }else{
    return screenwidth / document.body.offsetwidth;
  }
}
40、原生javascript获取移动设备屏幕宽度
复制代码 代码如下:
function getscreenwidth(){
  var smallerside = math.min(screen.width, screen.height);
  var fixviewportsexperiment = renderermodel.runningexperiments.fixviewport || renderermodel.runningexperiments.fixviewport;
  var fixviewportsexperimentrunning = fixviewportsexperiment && (fixviewportsexperiment.tolowercase() === new);
  if(fixviewportsexperiment){
    if(this.isandroidmobiledevice() && !this.isnewchromeonandroid()){
      smallerside = smallerside/window.devicepixelratio;
    }
  }
  return smallerside;
}
41、原生javascript完美判断是否为网址
复制代码 代码如下:
function isurl(strurl) {
    var regular = /^\b(((https?|ftp):\/\/)?[-a-z0-9]+(\.[-a-z0-9]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d))\b(\/[-a-z0-9_:\@&?=+,.!\/~%\$]*)?)$/i
    if (regular.test(strurl)) {
        return true;
    }
    else {
        return false;
    }
}
42、原生javascript根据样式名称检索元素对象
复制代码 代码如下:
function getelementsbyclassname(name) {
    var tags = document.getelementsbytagname('*') || document.all;
    var els = [];
    for (var i = 0; i         if (tags[i].classname) {
            var cs = tags[i].classname.split(' ');
            for (var j = 0; j                 if (name == cs[j]) {
                    els.push(tags[i]);
                    break
                }
            }
        }
    }
    return els
}
43、原生javascript判断是否以某个字符串开头
复制代码 代码如下:
string.prototype.startwith = function (s) {
    return this.indexof(s) == 0
}
44、原生javascript判断是否以某个字符串结束
复制代码 代码如下:
string.prototype.endwith = function (s) {
    var d = this.length - s.length;
    return (d >= 0 && this.lastindexof(s) == d)
}
45、原生javascript返回ie浏览器的版本号
复制代码 代码如下:
function getie(){
    if (window.activexobject){
        var v = navigator.useragent.match(/msie ([^;]+)/)[1];
        return parsefloat(v.substring(0, v.indexof(.)))
    }
    return false
}
46、原生javascript获取页面高度
复制代码 代码如下:
function getpageheight(){
  var g = document, a = g.body, f = g.documentelement, d = g.compatmode == backcompat
      ? a
      : g.documentelement;
  return math.max(f.scrollheight, a.scrollheight, d.clientheight);
}
47、原生javascript获取页面scrollleft
复制代码 代码如下:
function getpagescrollleft(){
  var a = document;
  return a.documentelement.scrollleft || a.body.scrollleft;
}
48、原生javascript获取页面可视宽度
复制代码 代码如下:
function getpageviewwidth(){
  var d = document, a = d.compatmode == backcompat
      ? d.body
      : d.documentelement;
  return a.clientwidth;
}
49、原生javascript获取页面宽度
复制代码 代码如下:
function getpagewidth(){
  var g = document, a = g.body, f = g.documentelement, d = g.compatmode == backcompat
      ? a
      : g.documentelement;
  return math.max(f.scrollwidth, a.scrollwidth, d.clientwidth);
}
50、原生javascript获取页面scrolltop
复制代码 代码如下:
function getpagescrolltop(){
  var a = document;
  return a.documentelement.scrolltop || a.body.scrolltop;
}
61、原生javascript解决offsetx兼容性问题
复制代码 代码如下:
// 针对火狐不支持offsetx/y
function getoffset(e){
  var target = e.target, // 当前触发的目标对象
      eventcoord,
      pagecoord,
      offsetcoord;  // 计算当前触发元素到文档的距离
  pagecoord = getpagecoord(target);
  // 计算光标到文档的距离
  eventcoord = {
    x : window.pagexoffset + e.clientx,
    y : window.pageyoffset + e.clienty
  };
  // 相减获取光标到第一个定位的父元素的坐标
  offsetcoord = {
    x : eventcoord.x - pagecoord.x,
    y : eventcoord.y - pagecoord.y
  };
  return offsetcoord;
}
function getpagecoord(element){
  var coord = { x : 0, y : 0 };
  // 计算从当前触发元素到根节点为止,
  // 各级 offsetparent 元素的 offsetleft 或 offsettop 值之和
  while (element){
    coord.x += element.offsetleft;
    coord.y += element.offsettop;
    element = element.offsetparent;
  }
  return coord;
}
62、原生javascript常用的正则表达式
复制代码 代码如下:
//正整数
/^[0-9]*[1-9][0-9]*$/;
//负整数
/^-[0-9]*[1-9][0-9]*$/;
//正浮点数
/^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
//负浮点数
/^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
//浮点数
/^(-?\d+)(\.\d+)?$/;
//email地址
/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
//url地址
/^[a-za-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$/;
//年/月/日(年-月-日、年.月.日)
/^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/;
//匹配中文字符
/[\u4e00-\u9fa5]/;
//匹配帐号是否合法(字母开头,允许5-10字节,允许字母数字下划线)
/^[a-za-z][a-za-z0-9_]{4,9}$/;
//匹配空白行的正则表达式
/\n\s*\r/;
//匹配中国邮政编码
/[1-9]\d{5}(?!\d)/;
//匹配身份证
/\d{15}|\d{18}/;
//匹配国内电话号码
/(\d{3}-|\d{4}-)?(\d{8}|\d{7})?/;
//匹配ip地址
/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/;
//匹配首尾空白字符的正则表达式
/^\s*|\s*$/;
//匹配html标记的正则表达式
]*>.*?|;
63、原生javascript实现返回顶部的通用方法
复制代码 代码如下:
function backtop(btnid) {
  var btn = document.getelementbyid(btnid);
  var d = document.documentelement;
  var b = document.body;
  window.onscroll = set;
  btn.style.display = none;
  btn.onclick = function() {
    btn.style.display = none;
    window.onscroll = null;
    this.timer = setinterval(function() {
      d.scrolltop -= math.ceil((d.scrolltop + b.scrolltop) * 0.1);
      b.scrolltop -= math.ceil((d.scrolltop + b.scrolltop) * 0.1);
      if ((d.scrolltop + b.scrolltop) == 0) clearinterval(btn.timer, window.onscroll = set);
    },
    10);
  };
  function set() {
    btn.style.display = (d.scrolltop + b.scrolltop > 100) ? 'block': none
  }
};
backtop('gotop');
64、原生javascript获得url中get参数值
复制代码 代码如下:
// 用法:如果地址是 test.htm?t1=1&t2=2&t3=3, 那么能取得:get[t1], get[t2], get[t3]
function get_get(){
  querystr = window.location.href.split(?)
  if(querystr[1]){
    gets = querystr[1].split(&)
    get =new array()
    for(i=0;i      tmp_arr = gets[i].split(=)
      key=tmp_arr[0]
      get[key] = tmp_arr[1]
    }
  }
  return querystr[1];
}
65、原生javascript实现全选通用方法
复制代码 代码如下:
function checkall(form, prefix, checkall) {
  var checkall = checkall ? checkall : 'chkall';
  for(var i = 0; i     var e = form.elements[i];
    if(e.type==checkbox){
      e.checked = form.elements[checkall].checked;
    }
  }
}
66、原生javascript实现全部取消选择通用方法
复制代码 代码如下:
function uncheckall(form) {
  for (var i=0;i    var e = form.elements[i];
    if (e.name != 'chkall')
    e.checked=!e.checked;
  }
}
67、原生javascript实现打开一个窗体通用方法
复制代码 代码如下:
function openwindow(url,windowname,width,height){
    var x = parseint(screen.width / 2.0) - (width / 2.0);
    var y = parseint(screen.height / 2.0) - (height / 2.0);
    var ismsie= (navigator.appname == microsoft internet explorer);
    if (ismsie) {
     var p = resizable=1,location=no,scrollbars=no,width=;
     p = p+width;
     p = p+,height=;
     p = p+height;
     p = p+,left=;
     p = p+x;
     p = p+,top=;
     p = p+y;
        retval = window.open(url, windowname, p);
    } else {
        var win = window.open(url, zyiispopup, top= + y + ,left= + x + ,scrollbars= + scrollbars + ,dialog=yes,modal=yes,width= + width + ,height= + height + ,resizable=no );
        eval(try { win.resizeto(width, height); } catch(e) { });
        win.focus();
    }
}
68、原生javascript判断是否为客户端设备
复制代码 代码如下:
function client(o){
       var b = navigator.useragent.tolowercase();
     var t = false;
     if (o == 'isop'){
       t = b.indexof('opera') > -1;
     }
     if (o == 'isie'){
       t = b.indexof('msie') > -1;
     }
     if (o == 'isff'){
       t = b.indexof('firefox') > -1;
     }
       return t;
}
69、原生javascript获取单选按钮的值
复制代码 代码如下:
function get_radio_value(field){
  if(field&&field.length){
    for(var i=0;i      if(field[i].checked){
        return field[i].value;
      }
    }
  }else {
    return ;
  }
}
70、原生javascript获取复选框的值
复制代码 代码如下:
function get_checkbox_value(field){
  if(field&&field.length){
    for(var i=0;i      if(field[i].checked && !field[i].disabled){
        return field[i].value;
      }
    }
  }else {
    return;
  }
}
(71~80)验证篇这一篇文章主要是10个比较常用表单验证功能,包括了邮箱、危险字符、验证长度、验证网址、验证小数、整数、浮点数等常用的验证,有了这些代码片段,平时的表单验证也可以不需要jquery的验证插件了,希望可以帮到大家。。。
71、原生javascript判断是否为邮箱
复制代码 代码如下:
function isemail(str){
    var re=/^\w+((-\w+)|(\.\w+))*\@[a-za-z0-9]+((\.|-)[a-za-z0-9]+)*\.[a-za-z0-9]+$/;
  if (re.test(str) != true) {
    return false;
  }else{
    return true;
  }
}
72、原生javascript判断是否有列表中的危险字符
复制代码 代码如下:
function isvalidreg(chars){
  var re=/|\[|\]|\{|\}|『|』|※|○|●|◎|§|△|▲|☆|★|◇|◆|□|▼|㊣|﹋|⊕|⊙|〒|ㄅ|ㄆ|ㄇ|ㄈ|ㄉ|ㄊ|ㄋ|ㄌ|ㄍ|ㄎ|ㄏ|ㄐ|ㄑ|ㄒ|ㄓ|ㄔ|ㄕ|ㄖ|ㄗ|ㄘ|ㄙ|ㄚ|ㄛ|ㄜ|ㄝ|ㄞ|ㄟ|ㄢ|ㄣ|ㄤ|ㄥ|ㄦ|ㄧ|ㄨ|ㄩ|■|▄|▆|\*|@|#|\^|\\/;
  if (re.test( chars) == true) {
    return false;
  }else{
    return true;
  }
}
73、原生javascript判断字符串是否大于规定的长度
复制代码 代码如下:
function isvalidlength(chars, len) {
  if (chars.length     return false;
  }
  return true;
}
74、原生javascript判断字符串是为网址不区分大小写
复制代码 代码如下:
function isvalidurl( chars ) {
  var re=/^([hh][tt]{2}[pp]:\/\/|[hh][tt]{2}[pp][ss]:\/\/)(\s+\.\s+)$/;
  if (!isnull(chars)) {
    chars = jstrim(chars);
    if (chars.match(re) == null)
      return false;
    else
      return true;
  }
  return false;
}
75、原生javascript判断字符串是否为小数
复制代码 代码如下:
function isvaliddecimal( chars ) {
  var re=/^\d*\.?\d{1,2}$/;
  if (chars.match(re) == null)
    return false;
  else
    return true;
}
76、原生javascript判断字符串是否为整数
复制代码 代码如下:
function isnumber( chars ) {
  var re=/^\d*$/;
  if (chars.match(re) == null)
    return false;
  else
    return true;
}
77、原生javascript判断字符串是否为浮点数
复制代码 代码如下:
function isfloat( str ) {
  for(i=0;i     if ((str.charat(i)9)&& str.charat(i) != '.'){
      return false;
     }
  }
  return true;
}
78、原生javascript判断字符是否为a-za-z英文字母
复制代码 代码如下:
function isletters( str ){
  var re=/^[a-za-z]+$/;
  if (str.match(re) == null)
    return false;
  else
    return true;
}
79、原生javascript判断字符串是否邮政编码
复制代码 代码如下:
function isvalidpost( chars ) {
  var re=/^\d{6}$/;
  if (chars.match(re) == null)
    return false;
  else
    return true;
}
80、原生javascript判断字符是否空null
复制代码 代码如下:
function isnull( chars ) {
  if (chars == null)
    return true;
  if (jstrim(chars).length==0)
    return true;
  return false;
}
81、原生javascript用正则表达式提取页面代码中所有网址
复制代码 代码如下:
var aa = document.documentelement.outerhtml.match(/(url\(|src=|href=)[\\']*([^\\'\(\)\\[\] ]+)[\\'\)]*|(http:\/\/[\w\-\.]+[^\\'\(\)\\[\] ]+)/ig).join(\r\n).replace(/^(src=|href=|url\()[\\']*|[\\'\>\) ]*$/igm,);
alert(aa);
82、原生javascript用正则表达式清除相同的数组(低效率)
复制代码 代码如下:
array.prototype.unique=function(){
  return this.reverse().join(,).match(/([^,]+)(?!.*\1)/ig).reverse();
}
83、原生javascript用正则表达式清除相同的数组(高效率)
复制代码 代码如下:
string.prototype.unique=function(){
  var x=this.split(/[\r\n]+/);
  var y='';
  for(var i=0;i    if(!new regexp(^+x[i].replace(/([^\w])/ig,\\$1)+$,igm).test(y)){
      y+=x[i]+\r\n
    }
  }
  return y
}
84、原生javascript用正则表达式按字母排序,对每行进行数组排序
复制代码 代码如下:
function setsort(){
  var text=k1.value.split(/[\r\n]/).sort().join(\r\n);//顺序
  var test=k1.value.split(/[\r\n]/).sort().reverse().join(\r\n);//反序
  k1.value=k1.value!=text?text:test;
}
85、原生javascript字符串反序
复制代码 代码如下:
function isreverse(text){
  return text.split('').reverse().join('');
}
86、原生javascript用正则表达式清除html代码中的脚本
复制代码 代码如下:
function clear_script(){
  k1.value=k1.value.replace(/[\s\s]*?|\s+on[a-za-z]{3,16}\s?=\s?[\s\s]*?|\s+on[a-za-z]{3,16}\s?=\s?'[\s\s]*?'|\s+on[a-za-z]{3,16}\s?=[^ >]+/ig,);
}
87、原生javascript动态执行javascript脚本
复制代码 代码如下:
function javascript(){
  try{
    eval(k1.value);
  }catch(e){
    alert(e.message);
  }
}
88、原生javascript动态执行vbscript脚本
复制代码 代码如下:
function vbscript(){
  try{
    var script=document.getelementbyid(k1).value;
    if(script.trim()==)return;
    window.execscript('on error resume next \n'+script+'\n if err.number0 then \n msgbox 请输入正确的vbscript脚本!,48,脚本错误! \n end if',vbscript)
  }catch(e){
    alert(e.message);
  }
}
89、原生javascript实现金额大写转换函数
复制代码 代码如下:
function transform(tranvalue) {
  try {
    var i = 1;
    var dw2 = new array(, 万, 亿); //大单位
    var dw1 = new array(拾, 佰, 仟); //小单位
    var dw = new array(零, 壹, 贰, 叁, 肆, 伍, 陆, 柒, 捌, 玖); //整数部分用
    //以下是小写转换成大写显示在合计大写的文本框中
    //分离整数与小数
    var source = splits(tranvalue);
    var num = source[0];
    var dig = source[1];
    //转换整数部分
    var k1 = 0; //计小单位
    var k2 = 0; //计大单位
    var sum = 0;
    var str = ;
    var len = source[0].length; //整数的长度
    for (i = 1; i       var n = source[0].charat(len - i); //取得某个位数上的数字
      var bn = 0;
      if (len - i - 1 >= 0) {
        bn = source[0].charat(len - i - 1); //取得某个位数前一位上的数字
      }
      sum = sum + number(n);
      if (sum != 0) {
        str = dw[number(n)].concat(str); //取得该数字对应的大写数字,并插入到str字符串的前面
        if (n == '0') sum = 0;
      }
      if (len - i - 1 >= 0) { //在数字范围内
        if (k1 != 3) { //加小单位
          if (bn != 0) {
            str = dw1[k1].concat(str);
          }
          k1++;
        } else { //不加小单位,加大单位
          k1 = 0;
          var temp = str.charat(0);
          if (temp == 万 || temp == 亿) //若大单位前没有数字则舍去大单位
          str = str.substr(1, str.length - 1);
          str = dw2[k2].concat(str);
          sum = 0;
        }
      }
      if (k1 == 3) //小单位到千则大单位进一
      {
        k2++;
      }
    }
    //转换小数部分
    var strdig = ;
    if (dig != ) {
      var n = dig.charat(0);
      if (n != 0) {
        strdig += dw[number(n)] + 角; //加数字
      }
      var n = dig.charat(1);
      if (n != 0) {
        strdig += dw[number(n)] + 分; //加数字
      }
    }
    str += 元 + strdig;
  } catch(e) {
    return 0元;
  }
  return str;
}
//拆分整数与小数
function splits(tranvalue) {
  var value = new array('', '');
  temp = tranvalue.split(.);
  for (var i = 0; i     value[i] = temp[i];
  }
  return value;
}
90、原生javascript常用的正则表达式大收集
复制代码 代码如下:
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:[\s| ]*\r
匹配 html 标记的正则表达式:.*|
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配 ip 地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g
匹配 email 地址的正则表达式:w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址 url 的正则表达式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
sql 语句:^(select|drop|delete|create|update|insert).*$
非负整数:^\d+$
正整数:^[0-9]*[1-9][0-9]*$
非正整数:^((-\d+)|(0+))$
负整数:^-[0-9]*[1-9][0-9]*$
整数:^-?\d+$
非负浮点数:^\d+(\.\d+)?$
正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$
英文字符串:^[a-za-z]+$
英文大写串:^[a-z]+$
英文小写串:^[a-z]+$
英文字符数字串:^[a-za-z0-9]+$
英数字加下划线串:^\w+$
e-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
url:^[a-za-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 或:^http:\/\/[a-za-z0-9]+\.[a-za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^\\])*$
邮政编码:^[1-9]\d{5}$
电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$
手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$
双字节字符(包括汉字在内):^\x00-\xff
匹配首尾空格:(^\s*)|(\s*$)
匹配 html 标记:.*|
匹配空行:[\s| ]*\r
提取信息中的网络链接:(h|h)(r|r)(e|e)(f|f) *= *('|)?(\w|\\|\/|\.)+('|| *|>)?
提取信息中的邮件地址:w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
提取信息中的图片链接:(s|s)(r|r)(c|c) *= *('|)?(\w|\\|\/|\.)+('|| *|>)?
提取信息中的 ip 地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
提取信息中的中国手机号码:(86)*0*13\d{9}
提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
提取信息中的中国邮政编码:[1-9]{1}(\d+){5}
提取信息中的浮点数(即小数):(-?\d*)\.?\d+
提取信息中的任何数字 :(-?\d*)(\.\d+)?
ip:(\d+)\.(\d+)\.(\d+)\.(\d+)
电话区号:^0\d{2,3}$
腾讯 qq 号:^[1-9]*[1-9][0-9]*$
帐号(字母开头,允许 5-16 字节,允许字母数字下划线):^[a-za-z][a-za-z0-9_]{4,15}$
中文、英文、数字及下划线:^[\u4e00-\u9fa5_a-za-z0-9]+$
91、原生javascript实现窗体改变事件resize的操作(兼容所以的浏览器)
复制代码 代码如下:
(function(){
  var fn = function(){
    var w = document.documentelement ? document.documentelement.clientwidth : document.body.clientwidth
      ,r = 1255
      ,b = element.extend(document.body)
      ,classname = b.classname
其它类似信息

推荐信息