String.prototype原型封装方法

1.复制n(n为正整数)个字符串

String.prototype.repeatStr = function(n){
    var  arr = [];
    var _this = this;//函数内this指向不同,先声明this指向String
    function repeat(){
        for(var i=0; i<_this.length; i++){
              arr.push(_this[i]);
        }
    }
    while(n-->0){//执行n次
        repeat()
    }
    return arr.join('');
}
console.log('str'.repeatStr(2));//'strstr'
//相当于es6的'str'.repeat(2)
/*或者:
function chongfu(str,n){
    return Array(n+1).join('str');
}
chongfu('str',3);//strstrstr
*/

2.删除指定索引位置的字符,索引无效将不删除任何字符

String.prototype.deleteCharAt = function(index){
    if(index < 0 || index >= this.length){
        return this.valueOf();
    }else if(index == 0){
        return this.substring(1, this.length);
    }else if(index == this.length - 1){
        return this.substring(0, this.length - 1);
    }else{
        return this.substring(0, index) + this.substring(index + 1);
    }
}
'lxflxf'.deleteCharAt(2);//'lxlxf'

3.两个字符串相连接

String.prototype.concatAb = function(newStr){
   var arr = this.split('');
   for(var i=0,len=newStr.length; i<len; i++){
       arr.push(newStr[i]);
   }
   return arr.join('');
}
'ab'.concatAb('cd');//'abcd'
//'ab'concat('cd');

4.删除字符串中所有的数字

String.prototype.delAllNum = function(){
      return this.replace(/[0-9]/g,'');
}
//console.log('2f 5fd5d5fd665'.delAllNum());f fddfd

5.去除字符串空格

String.prototype.trim = function(){
     return this.replace(/(^\s+)|(\s+$)/g,'');
}
//console.log('  dsf fd f  '.trim());

去除所有空格: str = str.replace(/\s*/g,"");    或者str.trim()    es6  
去除两头空格: str = str.replace(/^\s*|\s*$/g,"");
去除左空格: str = str.replace( /^\s*/, “”);    或者str.trimLeft()
去除右空格: str = str.replace(/(\s*$)/g, "");    或者str.trimRight()

6.反转字符串

String.prototype.rever = function(){
    var str = '';
    for(var i=this.length-1; i>=0; i--){
         str += this[i];
    }
    return str;
}
//console.log('2fs'.rever());sf2
//str.reverse();原生直接

7.截取一段字符串

String.prototype.cut = function(star,end){//包括头和尾
   var str = '';
   for(var i=star; i<=end; i++){
        str += this[i];
   }
   return str;
}
//console.log('2fsgdfgf'.cut(2,6));sgdfg

8.驼峰命名转换(name_item_dog 转成  nameItemDog)

String.prototype.hump = function(){
     var str = '';
     for(var i=0; i<this.length; i++){
         if(this[i] === '_'){
             i++;
             str += this[i].toUpperCase();
         }else{
             str += this[i];
         }
     }
     return str;
}
//console.log('name_item_dog'.hump());nameItemDog

 

 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值