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 '<';
case ">":
return '>';
case "\"":
return '"';
case "&":
return '&';
}
})
}
console.log(htmlReplace('<p class="red">hello world</p>'));//<p class="red">hello world</p>
5.5 split()
可以基于指定的分隔符将字符串分割为多个字符串,并将结果放入数组中 ,分割符可以是字符串也可以是RegExp对象 ,可以接受第二个参数,用于指定数组大小,返回的数组不会超过指定的大小
6.localeCompare(),
比较两个字符串,返回值: 如果字符串在字母表中排在参数字符串前面返回负数,后面返回正数,相等为0;
7.fromCharCode()
接受一个或多个字符串编码,然后将它们转换为字符串;