字符串替换、查询、转换、截取

2021-10-08  本文已影响0人  何小鹏

字符串操作技巧

1、判断字符串是否包含某个字符

indexOf

indexOf():查找某个字符,有则返回第一次匹配到的位置,否则返回-1
indexOf(要查的元素,开始查询的下标位置)

let str = "123456";
console.log(str.indexOf("1"));   // 输出结果:0
console.log(str.indexOf("7"));   // 输出结果:-1
console.log(str.indexOf("6",6));   // 输出结果:7

注:该方法同样适用于数组操作

includes

includes():该方法用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false
includes(要查的元素,开始查询的下标位置)

注:使用 includes()比较字符串和字符时是区分大小写。

let str = '123456';

str.includes('1')  // 输出结果:true
str.includes('7')  // 输出结果:false
str.includes('6', 6)  // 输出结果:false

注:该方法同样适用于数组操作

2、字符串截取

slice

slice() 方法用于提取字符串的某个部分,并以新的字符串返回被提取的部分,不改变原字符串。
slice(开始位置,结束位置)
结束位置不填写值时表示到字符串结尾处,负数则代表从结尾开始

let str = "abcdefg";
str.slice(1,6);   // 输出结果:"bcdef" 
str.slice(1);     // 输出结果:"bcdefg" 
str.slice();      // 输出结果:"abcdefg" 
str.slice(-2);    // 输出结果:"fg"
str.slice(6, 1);  // 输出结果:"" 

注:该方法同样适用于数组操作,数组使用时是浅拷贝

substring

substring() 用于提取字符串中介于两个指定下标之间的字符

str.substring(a, b)
a:需要截取的第一个字符的索引,该索引位置的字符作为返回的字符串的首字母。
b:(可选)一个 0 到字符串长度之间的整数,以该数字为索引的字符不包含在截取的字符串内。

substring 提取从 a 到 b(不包括)之间的字符。特别地:
如果 a 等于 b,substring 返回一个空字符串。
如果省略 b,substring 提取字符一直到字符串末尾。
如果任一参数小于 0 或为 NaN,则被当作 0。
如果任一参数大于 stringName.length,则被当作 stringName.length。
如果 a 大于 b,则 substring 的执行效果就像两个参数调换了一样。见下面的例子。

var anyString = "Mozilla";

// 输出 "Moz"
console.log(anyString.substring(0,3));
console.log(anyString.substring(3,0));
console.log(anyString.substring(3,-3));
console.log(anyString.substring(3,NaN));
console.log(anyString.substring(-2,3));
console.log(anyString.substring(NaN,3));

// 输出 "lla"
console.log(anyString.substring(4,7));
console.log(anyString.substring(7,4));

// 输出 ""
console.log(anyString.substring(4,4));

// 输出 "Mozill"
console.log(anyString.substring(0,6));

// 输出 "Mozilla"
console.log(anyString.substring(0,7));
console.log(anyString.substring(0,10));

3、字符串替换

replace()

替换指定字符串,并返回一个新的字符串,不改变原字符串

string.replace(searchvalue, newvalue)

searchvalue:一个RegExp 对象或者其字面量,要替换的字符串;
newvalue:用于替换掉第一个参数在原字符串中的匹配部分的字符串,该参数可以为一个function函数

let str = "abcdef";
str.replace("c", "z") // 输出结果:abzdef

4、字符串转数字

parseInt()

解析一个字符串并返回指定基数的十进制整数

parseInt(string, radix)

string:字符串,既被解析的值
radix :可选从 2 到 36,表示字符串的基数。例如指定 16 表示被解析值是十六进制数。请注意,10不是默认值!
由于不是所有的浏览器都是默认采用的10进制方案进行的,因此,在使用 parseInt 时,一定要指定一个 radix。

parseInt("50",10);            // 输出结果:50

parseFloat()

函数解析一个参数(必要时先转换为字符串)并返回一个浮点数。

给定值被解析成浮点数。如果给定值不能被转换成数值,则会返回 NaN。

parseFloat("10.01")      // 输出结果:10.01
上一篇下一篇

猜你喜欢

热点阅读