js字符串方法

333 阅读3分钟

js字符串方法

js操作方法都不会改变原字符串,字符串第一位索引是0,最后一位索引是-1

1.split(separator, howmany) 方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组

如果分割规则为空字符串,则返回数组的成员是原字符串的每一个字符。

如果省略参数,则返回数组的唯一成员就是原字符串。

    var myString = "Hello World. How are you doing?";
    
    var splits1 = myString.split('', 3);  //["H", "e", "l"]
    
    var splits2 = myString.split(' ', 3);  //["Hello", "World.", "How"]

    'a|b|c'.split() // ["a|b|c"]

2.trim(), trimStart(), trimEnd()

  • trim() 会从一个字符串的两端删除空白字符
  • trimStart() 消除字符串头部的空格 (es6新增)
  • trimEnd() 消除尾部的空格 (es6新增)
let str = " Hello Edureka! ";
str.trim() // "Hello Edureka!"
str.trimStart() // "Hello Edureka! "
str.trimEnd() // " Hello Edureka!"

3.slice(start, [end]) 可提取字符串的某个部分,返回一个新的字符串。

  • 若end为负数,负数表示从该字符串后面开始数(最后一位是 -1);
  • 若end没有提供,表示截取到最后一位(包括最后一位)
  • 包含起始位置,不包含结束位置
    let str = "0123456789";
    str.slice(3) // "3456789"
    str.slice(-3) // "789"
    str.slice(3, 5) // "34"
    str.slice(3, -3) // "3456"
    

4.substring(from, [to]) 用法效果跟slice差不多,但是to若是负数,会有预料之外的结果。建议优先使用slice方法。

  let str = "0123456789";
  str.substring(3) // "3456789"
  str.substring(-3) // "0123456789"
  str.substring(3, 5) // "34"
  str.substring(3, -3) // "012"

5.substr(start, [length]) 截取字符串,第二个参数为截取的长度,若不提供表示截取到原字符串的末尾(包含末尾)

 let str = "0123456789";
str.substr(2) // "23456789"
str.substr(2, 3) // "234"

6.replace(regexp/substr, target), replaceAll()(es6新增)

  • replace() 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。匹配上则替换,否则就不替换。注意原字符串不会改变。
  • replaceAll(searchValue, replacement) searchValue是搜索模式,可以是一个字符串,也可以是一个全局的正则表达式(带有g修饰符)
let myString = 'hellow';
let newStr1 = myString.replace('l', "w"); // "hewlow"
let newStr2 = myString.replaceAll('l', "w"); // "hewwow" 报错:myString.replaceAll is not a function

7.indexOf(substr, [start])搜索并(如果找到)返回字符串中搜索到的字符或子字符串的索引。如果没有找到,则返回-1,Start是一个可选参数,指定字符串中开始搜索的位置,默认值为0。

lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引

let myString = 'Hellowe';
myString.indexOf('e') //1
myString.lastIndexOf('e') //6

8.includes(), startsWith(), endsWith() (ES6 新增)

  • includes():返回布尔值,表示是否找到了参数字符串。

  • startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。

  • endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

  • 这三个方法都支持第二个参数,表示开始搜索的位置。

    let s = 'Hello world!';
    s.startsWith('Hello', 0) // true
    s.endsWith('!') // true
    s.includes('Hello') // true
    

9.concat(v1,v2..) 连接多个字符串,注意原字符串不会改变

let myString = 'Hellow';
 myString.concat('He', "123") //"HelloweHe123"

10.toLowerCase() toUpperCase() 字符串转全小写 大写,注意原字符串不会改变

11.charAt(index) 返回字符串中index位置的字符