字符串操作方法大全

字符串操作方法大全

总结常用操作字符串的方法
String详细介绍

获取指定位置的字符串

  1. charAt(Number)、charCodeAt(Number)函数返回指定位置字符的Unicode编码

    1
    2
    3
    4
    5
    "hello world".charAt(1)
    //返回 e

    "hello world".charCodeAt(1)
    //返回:101
  2. slice(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)
    //rld
  3. substring(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
  4. 转成数组,取指定数组位置的值
    split():使用一个指定的分隔符把一个字符串分割存储到数组

    1
    2
    "jpg|bmp|gif|ico|png".split("|")[2]
    //返回:"gif"

查找/搜索字符串

  1. indexOf(string)、stringObject.lastIndexOf(searchvalue,fromindex) 方法可返回一个指定的字符串值最后出现的位置,对大小写敏感!找不到值则返回 -1
    如:str.lastIndexOf(“w”, 5) 返回:-1,fromindex为可选的整数参数。在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。

    1
    2
    3
    4
    5
    6
    var str="Hello world!";
    console.log( str.indexOf("w") )
    //6,indexOf(String) 返回子字符串的位置,没有找到返回-1

    console.log( str.lastIndexOf("w") )
    //6
  2. match(字符串或正则表达式)
    在字符串内检索指定的值或正则表达式,找到则返回所要匹配的字符串或数组或者对象,找不到则返回null。
    使用正则匹配没有g(全局标识)标志时,返回一个数组对象:
    [结果字符串, index:字符串索引, input:查找的原始字符串]
    如果正则表达式包含 g 标志,则该方法返回匹配字符串的数组。

    1
    2
    3
    4
    5
    6
    7
    console.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"]
  3. exec()函数是在正则上调用,传递字符串的参数,返回一个数组对象,找不到则返回null

    1
    2
    3
    console.log( /world/.exec(str) )
    //["world", index: 6, input: "Hello world!", groups: undefined]

  4. search(Object)

    1
    2
    console.log(str.search("w"))
    //6

获取字符串长度

1
2
3
var str="hello word"
console.log( str.length )
//10

字符串替换

replace(regexp/substr,replacement) 默认只进行第一次匹配操作的替换,想要全局替换,需要置上正则全局标识g

1
2
3
4
var str="hello word, ken.zhu, hello word";
console.log( str.replace("hello","") )
console.log( str.replace(/hello/,"") )
console.log( str.replace(/hello/g,"") )

字符串大小写转换

toLowerCase() 创建原字符串的小写副本,toUpperCase() 创建原字符串的大写副本

1
2
var str = "ABCabc"; 
console.log( str.toLowerCase(),str.toUpperCase() )

字符串合并

1
2
3
4
var str = "ABCDEF",
s = "---";
console.log( str.concat(s,"123","ABC") )
//返回:ABCDEF---123ABC

字符串头尾去空格

trim()会创建一个字符串副本,删除前置以及后缀的所有空格,IE8及一下不支持

1
2
3
var str=" hello word     "
console.log( str.trim() )
//hello word

字符串去重

1
2
3
4
5
6
7
8
9
10
11
12
13
var str="aahhgggsssjjj";
function removeRepeat(msg){
var res=[];
var arr=msg.split("");
for(var i=0;i<arr.length;i++){
if(res.indexOf(arr[i])==-1){
res.push(arr[i]);
}
}
return res.join("");
}
removeRepeat(str);
//ahgsj

字符串转数组

stringObject.split(separator,howmany),把一个字符串分割成字符串数组,
separator为必需,字符串或正则表达式,以该参数对字符串进行分割,str.split(“”)则每个字符分割;howmany为可选,可指定返回的数组的最大长度

1
2
3
4
5
6
var str = "AA BB CC DD EE FF"; 
console.log( str.split(" ",3) )
//AA,BB,CC

str.split("")
//["A", "A", " ", "B", "B", " ", "C", "C", " ", "D", "D", " ", "E", "E", " ", "F", "F"]

ES6的…也可以

1
2
[...'hello']
//["h", "e", "l", "l", "o"]

转为字符串类型

Object.toString(),String(Object)

1
2
var a = 10;
console.log( a.toString(), String(a) );

对象加个空字符串就变成了字符串类型:
数字+ 空字符串 = 字符串, 数组+ 空字符串 = 字符串…

1
2
3
4
var str = 10;
str = str + " "
console.log( str )
//返回:10