字符串方法总结

1.字符串截取方法

1.1slice(),可传入两个参数,第一个参数表示截取的开始的下标,第二个表示结束的下标,第二个参数不传的话表示到字符串的末尾,如果传入的是负数则等价于字符串的长度加上这个负数,此方法不会修改原字符串

var str = 'hello world';
console.log(str.substring(-3));//hello world ,-3将会被转换为0
console.log(str.slice(3,-4));//lo w 传入的等价于 str.slice(3,7),7=11-4

1.2substring(),可传入两个参数,开始截取的下标,结束截取的下标,如果是负数将会被转换为0,如果只有一个参数,则表示一直到字符串末尾;不改变原字符串

console.log(str.substring(-3));//hello world ,-3将会被转换为0
console.log(str.substring(3,-4));//hel 第二个参数会被解读为0,相当于str.substring(3,0)被转换为str.substring(0,3)

1.3substr(),传入两个参数,第一个是开始截取的下标,第二个是截取字符串的长度(可选,如果不传,一直到字符串末尾)

console.log(str.substr(-3));//rld 真实的值是str.length-3
console.log(str.substr(3,-4));//''  第二个参数被解读为0,也就是截取的长度为0,所以返回空字符串

2.indexOf()与lastIndextOf()

都是返回指定字符在字符串中的下标,可以传入第二个参数,表示开始查找的位置的下标,区别,indexOf()从头开始查找,lastIndexOf()从尾部开始查找。如果要判断一个字符在该字符串中只出现了一次,只需要判断indexOf和lastIndexOf()找到的下标是否相等,相等则说明只出现了一次

console.log(str.indexOf('o'));//从头开始搜索
console.log(str.lastIndexOf('o'))//从尾开始搜索
console.log(str.indexOf('o',6));//从头开始搜索,第二关参数表示开始搜索的位置
console.log(str.lastIndexOf('o',6))//从尾开始搜索
//匹配所有的字符串
var str = 'ryudufihusedeiopsyeefduid';
var arr = [];
var pos = str.indexOf('e');
while (pos > -1){
    arr.push(pos);
    pos = str.indexOf('e',++pos);
}
console.log(arr);

3.trim()去除字符串前后的空格,trimLeft()去除左边的,trimRight()去除右边的

4.字符串大小写转化

console.log(str.toLowerCase())//转小写
console.log(str.toUpperCase())//转大写

5.字符串模式匹配方法

5.1match()

只接受一个参数,要么是正则表达式,要么是RegExp对象 ,match()方法返回一个数组,数组的第一项是与整个模式匹配的字符串, 之后的每一项(如果有)保存着与正则表达式匹配的字符串

var text = 'cat fat bat';
var matches = text.match(/.at/);
console.log(matches);//["cat", index: 0, input: "cat fat bat", groups: undefined]
console.log(matches.index)//0
console.log(matches[0]);//cat

5.2search()

只有一个参数,由字符串或RegExp对象指定的一个正则表达式 //返回字符串中第一个匹配项中的索引,如果没有找到则返回-1,始终从字符串的头开始向后查找

var pos = text.search(/at/);
console.log(pos);//1

5.3replace()

接受两个参数,第一个可以是RegExp对象或者一个字符串(不会被转换成正则表达式) 第二个字符串可以是字符串也可以是函数,如果第一个参数是字符串,那么只会替换第一个子字符串, 想要替换全部就必须使用正则表达式,且要指定全局(g)标志

var r = text.replace('at','ond');
console.log(r);//cond fat bat
如果第二个参数是字符串还可以使用一些特殊的字符序列
第二个参数传入函数,会向这个函数传入三个参数,1)模式的匹配项 2)模式匹配项在字符串中的位置 3)原始字符串
function htmlReplace(text) {
    return text.replace(/[<>"&]/g,function (m,pos,str) {
        switch (m) {
            case "<":
                return '&lt;';
            case ">":
                return '&gt;';
            case "\"":
                return '&quot;';
            case "&":
                return '&amp;';
        }
    })
}
console.log(htmlReplace('<p class="red">hello world</p>'));//&lt;p class=&quot;red&quot;&gt;hello world&lt;/p&gt;

 

5.5 split()

可以基于指定的分隔符将字符串分割为多个字符串,并将结果放入数组中 ,分割符可以是字符串也可以是RegExp对象 ,可以接受第二个参数,用于指定数组大小,返回的数组不会超过指定的大小

6.localeCompare(),

比较两个字符串,返回值: 如果字符串在字母表中排在参数字符串前面返回负数,后面返回正数,相等为0;

7.fromCharCode()

接受一个或多个字符串编码,然后将它们转换为字符串;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值