文章目录

  • 1. concat() 连接字符串 不会改变原始字符串
  • 2. slice() substring() substr() 截取字符串
  • 2.1 slice(start, end) 不会改变原始字符串
  • 2.2 substring(from,to) 不会改变原始字符串
  • 2.3 substr(start,length) 不会改变原始字符串
  • 3. toLowerCase() toUpperCase() 大小写转换
  • 3.1 toLowerCase() 把字符串转换为小写 不会改变原始字符串
  • 3.2 toUpperCase() 把字符串转换为大写 不会改变原始字符串
  • 4. split(separator,limit) 字符串分割成字符串数组 不会改变原始字符串
  • 5. charAt(index) 返回指定位置的字符 不会改变原始字符串
  • 6. indexOf() lastIndexOf() 返回某个指定的字符在字符串中出现的位置
  • 6.1 indexOf(searchvalue,start) 不会改变原始字符串
  • 6.2 lastIndexOf(searchvalue,start) 不会改变原始字符串
  • 7. replace() 字符串中用一些字符替换另一些字符 不会改变原始字符串


1. concat() 连接字符串 不会改变原始字符串

concat() 方法会将两个字符串连接起来, 但是 不会改变原始字符串

let s = "Hello";
let w = "World";
console.log(s.concat(w));  // HelloWorld
console.log(s);  // Hello

2. slice() substring() substr() 截取字符串

2.1 slice(start, end) 不会改变原始字符串

slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。slice() 不会改变原始字符串
使用 start(包含)end(不包含) 参数来指定字符串提取的部分。
字符串中第一个字符位置为 0, 第二个字符位置为 1 以此类推。
提示: 如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。

使用 start 是必须的 要抽取的片断的起始下标。第一个字符位置为 0
end 可选 紧接着要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

// slice()
var str = "HelloWorld";
console.log(str.slice(1));  // elloWorld
console.log(str.slice(1,5)); // ello
console.log(str.slice(1,-2));  // elloWor
console.log(str);  // HelloWorld

2.2 substring(from,to) 不会改变原始字符串

substring(from,to)用于提取字符串介于两个指定下标之间的字符, 返回的子串包括 开始 处的字符from(包含),但不包括 结束 处的字符to(不包含)
只能输入正整数, 输入负数不会报错, 但是无效

其中 from 是必须的
to 可选

// substring()
var str = "HelloWorld";
console.log(str.substring(1)); // elloWorld
console.log(str.substring(1,5)); // ello
console.log(str.substring(1,-5)); // H
console.log(str); // HelloWorld

2.3 substr(start,length) 不会改变原始字符串

substr(start,length) 提取从开始下标指定数目的字符

start 必须 要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推
length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从开始位置到结尾的字串。

var str = "HelloWorld";
console.log(str.substr(1)); // elloWorld
console.log(str.substr(1,5)); // elloW
console.log(str.substr(-3,3)); // rld
console.log(str.substr(-1,3)); // d
console.log(str); // HelloWorld

3. toLowerCase() toUpperCase() 大小写转换

3.1 toLowerCase() 把字符串转换为小写 不会改变原始字符串

var str = "HelloWorld";
console.log(str.toLowerCase()); // helloworld
console.log(str); // HelloWorld

3.2 toUpperCase() 把字符串转换为大写 不会改变原始字符串

var str = "HelloWorld";
console.log(str.toUpperCase()); // HELLOWORLD
console.log(str); // HelloWorld

4. split(separator,limit) 字符串分割成字符串数组 不会改变原始字符串

如果使用空字符串 ("") ,那么每个字符之间都会被分割。

separator 可选。字符串或正则表达式,从该参数指定的地方分割
limit 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

var str = "HelloWorld";
console.log(str.split("")); // ["H", "e", "l", "l", "o", "W", "o", "r", "l", "d"]
console.log(str.split("", 5)); // ["H", "e", "l", "l", "o"]
console.log(str); // HelloWorld

5. charAt(index) 返回指定位置的字符 不会改变原始字符串

charAt(index) 返回指定位置的字符 第一个字符位置为 0, 第二个字符位置为 1,以此类推.

index 必需。表示字符串中某个位置的数字,即字符在字符串中的位置。

var str = "HelloWorld";
console.log(str.charAt(1)); // e
console.log(str); // HelloWorld

6. indexOf() lastIndexOf() 返回某个指定的字符在字符串中出现的位置

6.1 indexOf(searchvalue,start) 不会改变原始字符串

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1indexOf() 方法区分大小写。

searchvalue 必需。规定需检索的字符串值。
start 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。

var str = "HelloWorld";
console.log(str.indexOf("H")); // 0
console.log(str.indexOf("c")); // -1

// 规定在字符串中开始检索的位置
console.log(str.indexOf('l')); // 2
console.log(str.indexOf('l',5)); // 8
console.log(str.indexOf('H',1)); // -1
console.log(str); // HelloWorld

6.2 lastIndexOf(searchvalue,start) 不会改变原始字符串

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置 如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索
该方法将从后向前检索字符串,但返回是从起始位置 (0) 开始计算子字符串最后出现的位置。 看它是否含有字符串, 开始检索的位置在字符串的 start 处或字符串的结尾(没有指定 start 时)。
如果没有找到匹配的字符串则返回 -1lastIndexOf() 方法区分大小写。

searchvalue 必需。规定需检索的字符串值。
start 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0string Object.length - 1。如省略该参数,则在一个字符串中的指定位置从后向前搜索。

var str = "HelloWorld";
console.log(str.lastIndexOf("l")); // 8

// 如果指定了开始的位置, 返回的位置是从指定开始地方,往前计算
console.log(str.lastIndexOf('l', 5)); // 3
console.log(str.lastIndexOf('l', 1)); // -1
console.log(str); // HelloWorld

7. replace() 字符串中用一些字符替换另一些字符 不会改变原始字符串

replace(searchvalue,newvalue) 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

searchvalue 必须。规定子字符串或要替换的模式的 RegExp 对象。
newvalue 必需。一个字符串值。规定了替换文本或生成替换文本的函数

var str = "HelloWorld";
console.log(str.replace("l", "w")); // HewloWorld
console.log(str.replace(/l/g,'w')); // HewwoWorwd
console.log(str); // HelloWorld