扩展原生js的一些方法

扩展原生js的Array类

 1     Array.prototype.add = function(item){
 2         this.push(item);
 3     }
 4     Array.prototype.addRange = function(items){
 5         var length = items.length;
 6         if(length!=0){
 7             for (var index = 0; index < length; index++) {
 8                 this.push(items[index]);
 9
10             }
11         }
12     }
13     Array.prototype.clear = function(){
14         if(this.length>0){
15             this.splice(0,this.length);
16         }
17     }
18     Array.prototype.isEmpty = function(){
19         if(this.length == 0){
20             return true;
21         }
22         else{
23             return false;
24         }
25     }
26     Array.prototype.clone = function(){
27         var clonedArray = [];
28         var length = this.length;
29         for (var index = 0; index < length; index++) {
30             clonedArray[index] = this[index];
31         }
32         return clonedArray;
33     }
34     Array.prototype.contains = function(item){
35         var index = this.indexOf(item);
36         return (index>=0);
37     }
38     Array.prototype.dequeue = function(){
39         return this.shift();
40     }
41     Array.prototype.indexOf = function(item){
42         var length = this.length;
43
44         if(length!=0){
45             for (var index = 0; index < length; index++) {
46                 if(this[index] == item){
47                     return index;
48                 }
49             }
50         }
51         return -1;
52     }
53     Array.prototype.insert = function(index,item){
54         this.splice(index,0,item);
55     }
56     Array.prototype.joinstr = function(str){
57         var newStr = new Array(this.length);
58         for (var i = 0; i < this.length; i++) {
59             newStr[i] = this[i]+str;
60         }
61         return newStr;
62     }
63     Array.prototype.queue = function(item){//入队
64         this.push(item);
65     }
66     Array.prototype.remove = function(item){
67         var index = this.indexOf(item);
68         if(index >= 0){
69             this.splice(index,1);
70         }
71     }
72     Array.prototype.removeAt = function(index){
73         this.splice(index,1);
74     }
75     //给js原生Array增加each方法
76     Array.prototype.each = function(fn)
77     {
78         return this.length ? [fn(this.slice(0,1))].concat(this.slice(1).each(fn)) : [];
79     };
80
81     [1,2,3,4].each(function(x){
82         document.write(x + "<br/>");
83     });

原生js的String类扩展

    //获取字符数组
    String.prototype.toCharArray = function(){
        return this.split("");
    }
    //获取N个相同的字符串
    String.prototype.repeat = function(num){
        var tmpArr = [];
        for (var i = 0; i < num; i++) {
            temArr.push(this);
            return temArr.join("");
        }

    }
    //逆序
    String.prototype.reverse = function(){
        return this.split("").reverse().join("");

    }
    //测试是否是数字
String.prototype.isNumeric = function() {
    var tmpFloat = parseFloat(this);
    if (isNaN(tmpFloat))
        return false;
    var tmpLen = this.length - tmpFloat.toString().length;
    return tmpFloat + "0".Repeat(tmpLen) == this;
}
//测试是否是整数
String.prototype.isInt = function() {
    if (this == "NaN")
        return false;
    return this == parseInt(this).toString();
}
// 合并多个空白为一个空白
String.prototype.resetBlank = function() {
    return this.replace(/s+/g, " ");
}
// 除去左边空白
String.prototype.LTrim = function() {
    return this.replace(/^s+/g, "");
}
// 除去右边空白
String.prototype.RTrim = function() {
    return this.replace(/s+$/g, "");
}
// 除去两边空白
String.prototype.trim = function() {
    return this.replace(/(^s+)|(s+$)/g, "");
}
// 保留数字
String.prototype.getNum = function() {
    return this.replace(/[^d]/g, "");
}
// 保留字母
String.prototype.getEn = function() {
    return this.replace(/[^A-Za-z]/g, "");
}
// 保留中文
String.prototype.getCn = function() {
    return this.replace(/[^u4e00-u9fa5uf900-ufa2d]/g, "");
}
// 得到字节长度
String.prototype.getRealLength = function() {
    return this.replace(/[^x00-xff]/g, "--").length;
}
// 从左截取指定长度的字串
String.prototype.left = function(n) {
    return this.slice(0, n);
}
// 从右截取指定长度的字串
String.prototype.right = function(n) {
    return this.slice(this.length - n);
}
// HTML编码
String.prototype.HTMLEncode = function() {
    var re = this;
    var q1 = [ /x26/g, /x3C/g, /x3E/g, /x20/g ];
    var q2 = [ "&", "<", ">", " " ];
    for ( var i = 0; i < q1.length; i++)
        re = re.replace(q1[i], q2[i]);
    return re;
}
// Unicode转化
String.prototype.ascW = function() {
    var strText = "";
    for ( var i = 0; i < this.length; i++)
        strText += "&#" + this.charCodeAt(i) + ";";
    return strText;
}
时间: 2024-10-23 10:21:54

扩展原生js的一些方法的相关文章

原生JS添加节点方法与JQuery添加节点方法的比较及总结

一.首先构建一个简单布局,来供下边讲解使用 1.HTML部分代码: <div id="div1">div1</div> <div id="div2">div2 <span id="span1">span1</span> <span id="span2">span2</span> </div> <div id="div

转载 -- 基于原生JS与OC方法互相调用并传值(附HTML代码)

最近项目里面有有个商品活动界面,要与web端传值,将用户在网页点击的商品id 传给客户端,也就是js交互,其实再说明白一点就是方法的互相调用而已. 本文叙述下如何进行原生的JavaScript交互 本文包括JS调用OC方法并传值,OC调用JS方法并传值 本来想把html放进服务器里面,然后访问,但是觉得如果html在本地加载更有助于理解,特把html放进项目里 HTML代码 <!DOCTYPE html> <html> <head> <meta charset=&

绑定弹窗事件最好的方法,原生JS和JQuery方法

使用jQuery ui = { $close: $('.close') , $pop: $('.pop') , $topopBtn: $('.topop-btn') , $popbtnArea: $('.popbtn-area') }; // 绑定打开弹窗 ui.$popbtnArea.on('click','.topop-btn',function(){ ui.$pop.eq($(this).index()).show(); }) // 关闭弹窗 ui.$close.on('click',fu

原生js实现replace方法

今天看到有人提问js的replace方法怎么实现的,自己就试了试js手册里的String对象的介绍replace大概是这样: string.replace(regexp, replacement) 第一个参数:(regexp) 声明了要替换的模式的RegExp对象.如果该参数是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换成RegExp对象. 第二个参数(replacement) 一个字符串,声明的是替换文本或生成替换文本的函数.详见描述部分. 返回值 一个新字符串,是用repl

原生js常用的方法

1, js数组去重的方法 //第一种 function unique(ary){ var obj={}; for(var i=0;i<ary.length;i++){ var cur = ary[i]; if(obj[cur] == cur){ ary[i] = ary[ary.length-1]; ary.length--; i--; } obj[cur] = cur; } return ary; } console.log(unique([2,3,2,4,3,5,6,1,1])); //第二

简单的原生js 模拟jquery方法

仓促的模拟敲一下就上传来保存了. Object.prototype.fadeIn = function(speed) { var that = this; setTimeout(function() { that.style.display = "block" }, speed) return that; } //原生模拟jq中 fadeOut()方法: Object.prototype.fadeOut = function(speed) { var that = this; setT

原生js实现ajax方法

下面是一个比较完整的Ajax function ajax(){ var ajaxData = { type:arguments[0].type || "GET", url:arguments[0].url || "", async:arguments[0].async || "true", data:arguments[0].data || null, dataType:arguments[0].dataType || "text&qu

原生js封装ajax方法,包含jsonp和网络超时处理

function ajax(options) { options = options || {}; options.type = (options.type || "GET").toUpperCase(); options.dataType = options.dataType || 'json'; options.async = options.async || true; options.timeout=options.timeout||8000;//超时处理,默认8s var p

原生JS封装ajax方法

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 6 <title>Examples</title> 10 <script> 11 12 //将对象序列