字符串操作方法大全
总结常用操作字符串的方法
String详细介绍
获取指定位置的字符串
charAt(Number)、charCodeAt(Number)函数返回指定位置字符的Unicode编码
1
2
3
4
5"hello world".charAt(1)
//返回 e
"hello world".charCodeAt(1)
//返回:101slice(start,end) 从已有的数组中返回选定的元素,如:[1,2,3,4,5,6].slice(2,4),返回:[3,4]
1
2
3
4"hello world".slice(2,4)
//返回 ll
"hello world".slice(-3)
//rldsubstring(start,end),表示从start到end之间的字符串,包括start位置的字符但是不包括end位置的字符。
substr(start,length)表示从start位置开始,截取length长度的字符串1
2
3
4
5"images/off_1.png".substring(7,10)
//返回: off
"hello world".substr(7,3)
//返回: orl转成数组,取指定数组位置的值
split():使用一个指定的分隔符把一个字符串分割存储到数组1
2"jpg|bmp|gif|ico|png".split("|")[2]
//返回:"gif"
查找/搜索字符串
indexOf(string)、stringObject.lastIndexOf(searchvalue,fromindex) 方法可返回一个指定的字符串值最后出现的位置,对大小写敏感!找不到值则返回 -1
如:str.lastIndexOf(“w”, 5) 返回:-1,fromindex为可选的整数参数。在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。1
2
3
4
5
6var str="Hello world!";
console.log( str.indexOf("w") )
//6,indexOf(String) 返回子字符串的位置,没有找到返回-1
console.log( str.lastIndexOf("w") )
//6match(字符串或正则表达式)
在字符串内检索指定的值或正则表达式,找到则返回所要匹配的字符串或数组或者对象,找不到则返回null。
使用正则匹配没有g(全局标识)标志时,返回一个数组对象:
[结果字符串, index:字符串索引, input:查找的原始字符串]
如果正则表达式包含 g 标志,则该方法返回匹配字符串的数组。1
2
3
4
5
6
7console.log( str.match("world") )
//["world", index: 6, input: "Hello world!", groups: undefined]
console.log( str.match(/l/g) )
//["l", "l"]
var str2 = "1Hello 2world! 3";
console.log( str2.match(/\d+/g) )
//["1", "2", "3"]exec()函数是在正则上调用,传递字符串的参数,返回一个数组对象,找不到则返回null
1
2
3console.log( /world/.exec(str) )
//["world", index: 6, input: "Hello world!", groups: undefined]search(Object)
1
2console.log(str.search("w"))
//6
获取字符串长度
1 | var str="hello word" |
字符串替换
replace(regexp/substr,replacement) 默认只进行第一次匹配操作的替换,想要全局替换,需要置上正则全局标识g
1 | var str="hello word, ken.zhu, hello word"; |
字符串大小写转换
toLowerCase() 创建原字符串的小写副本,toUpperCase() 创建原字符串的大写副本
1 | var str = "ABCabc"; |
字符串合并
1 | var str = "ABCDEF", |
字符串头尾去空格
trim()会创建一个字符串副本,删除前置以及后缀的所有空格,IE8及一下不支持
1 | var str=" hello word " |
字符串去重
1 | var str="aahhgggsssjjj"; |
字符串转数组
stringObject.split(separator,howmany),把一个字符串分割成字符串数组,
separator为必需,字符串或正则表达式,以该参数对字符串进行分割,str.split(“”)则每个字符分割;howmany为可选,可指定返回的数组的最大长度
1 | var str = "AA BB CC DD EE FF"; |
ES6的…也可以
1 | [...'hello'] |
转为字符串类型
Object.toString(),String(Object)
1 | var a = 10; |
对象加个空字符串就变成了字符串类型:
数字+ 空字符串 = 字符串, 数组+ 空字符串 = 字符串…
1 | var str = 10; |