珠峰培训

javascript中字符串常用方法

作者:tx

2016-09-11 20:53:40

242

通过索引获取字符charAt

var str = 'zhufengpeixun';
console.log(str.charAt(0)); // 'z'

通过索引获取字符编码charCodeAt

var str = 'zhufengpeixun';
console.log(str.charCodeAt(0)); //122 在ASCII表中的编码

截取字符串 substr,substring,slice

substr(n,m) 从索引n开始截取m个,如果m没有传值就是截取到末尾

var str = 'zhufengpeixun';
console.log(str.substr(0,3)); //'zhu'
console.log(str.substr(0)); //'zhufengpeixun'

substring(n,m) 从索引n开始截取到索引m但是不包含m`,如果m没传值截取到末尾

var str = 'zhufengpeixun';
console.log(str.substring(2,4)); // 'uf'
console.log(str.substring(2)); //'ufengpeixun';

slice(n,m) 用法和substring完全相同,但是支持负数索引。默认在索引值加上字符串长度

var str = 'zhufengpeixun';
console.log(str.slice(-3,-1)); //'xu'

转换大小写 toLowerCase,toUpperCase

var str = 'aa';
console.log(str.toUpperCase()); //'AA'
var str = 'BB';
console.log(str.toLowerCase()); // 'bb'

查看字符在字符串中的索引位置indexOf, lastIndexOf

查看字符在字符串中第一次出现的索引位置,如果出现就返回对应的索引位置,如果没有出现就返回-1

var str = 'zhufengpeixun';
console.log(str.indexOf('z')); //0
console.log(str.indexOf('oo')); //-1

查看字符在字符串中最后一次出现的索引位置,如果出现返回对应的索引位置,如果没有出现就返回-1

var str = 'zhufengpeixun';
console.log(str.lastIndexOf('f')); // 3

把字符串拆分成数组 split

var str = 'zhu feng pei xun';
console.log(str.split(' ')); //把字符串按照空格拆分成数组 ['zhu','feng','pei','xun'];
console.log(str.split(/ +/)); //也可以使用正则参数 ['zhu','feng','pei','xun'];

字符串替换 replace

var str = 'zhufengpeixun';
var newStr = str.replce('zhu','珠'); // '珠fengpeixun'
var newStr = str.replace('zhu',function (){
return '珠';
}); //'珠fengpeixun' 如果第二个参数是函数那么就用函数的返回值去替换
var newStr = str.replace(/(\w)/g, function (){
console.log(arguments);
//函数执行的次数和正则能成功匹配到的字符串的次数相同
//函数每次执行arguments里分别是: 1 正则匹配到的内容 2 分组匹配到的内容 3 匹配开始的索引值 4 原有字符串
return arguments[1];
});
console.log(newStr); //'zhufengpeixun' 每次都是用分组匹配到的每一个字符去替换

匹配方法 match

match方法需要一个正则参数和正则中的exec方法用法相似,不同点在正则包含g的情况下match可以一次把所有符合的全部获取到,而exec需要执行多次。如果没有g那么两者的结果相同

var str =
        'zhufeng2015peixun2016';
var reg = /\d+/g;
console.log(str.match(reg)); //['2015','2016']
console.log(reg.exec(str)); //[2015,index: 7, input: 'zhufeng2015peixun2016' ]

console.log(reg.exec(str)); // ["2016", index: 17, input: "zhufeng2015peixun2016"]

javascript中字符串的方法是比较常用的方法,尤其repalce和match等结合正则表达式一起使用方法更是要好好把握每一个返回值和具体细节