📝个人主页:爱吃炫迈
💌系列专栏:数据结构与算法
🧑💻座右铭:道阻且长,行则将至💗
文章目录
- 移除字符串首尾空白符
- trim()
- trimStart()
- trimEnd()
- 获取字符串指定位置的值
- charAt()
- charCodeAt()
- indexOf()
- lastIndexOf()
- includes()
- startsWith()
- endsWith()
- 连接多个字符串
- concat()
- 字符串分割成数组
- split()
- 截取字符串
- slice()
- substr()
- substring()
- 字符串大小写转换
- toLowerCase()
- toUpperCase()
- 字符串模式匹配
- replace()
- match()
- search()
- 获取字符串本身
- valueOf()
- toString()
- 重复字符串
- repeat()
- 补齐字符串长度
- padStart(),padEnd()
- 字符串转换为数字
- parseInt()
- parseFloat()
- parseFloat()
移除字符串首尾空白符
trim()
trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
let s = " hello wor d ";
let s1 = s.trim();
console.log(s);
console.log(s1);
trimStart()
trimStart()方法用于删除字符串开头的空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
let s = " a bc ";
let s1 = s.trimStart();
console.log(s);
console.log(s1);
trimEnd()
trimEnd()方法用于删除字符串结尾的空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。
let s = " a bc ";
let s1 = s.trimEnd();
console.log(s);
console.log(s1);
获取字符串指定位置的值
charAt()
charAt() 方法获取到的是指定位置的字符;
语法
当index的取值不在str的长度范围内时,s[index]会返回undefined,而charAt(index)会返回空字符串;
案例
let s = "abc";
let s1 = s.charAt(1);
let s2 = s.charAt(4);
console.log(s[1]);
console.log(s1);
console.log(s[4]);
console.log(s2);
charCodeAt()
charCodeAt()方法获取的是指定位置字符的Unicode值
案例
let s = "abc";
let s1 = s.charCodeAt(1);
console.log(s[1]);
console.log(s1);
检索字符串是否包含特定序列
indexOf()
查找某个字符,有则返回第一次匹配到的位置,否则返回-1
语法
string.indexOf(searchvalue,fromindex)
- searchvalue:必需,规定需查找的字符串值;
- fromindex:可选,规定在字符串中开始检索的位置。它的合法取值是 0 到 string.length - 1。如省略该参数,则从字符串的首字符开始检索。
案例
let s = "abcdefgabcdefg";
console.log(s.indexOf("a")); //输出0
console.log(s.indexOf("z")); //输出-1
console.log(s.indexOf("a", 1)); //输出7
console.log(s.indexOf("a", 20)); //输出-1
lastIndexOf()
查找某个字符,有则返回最后一次匹配到的位置,否则返回-1
案例
let s = "abcdefgabcdefg";
console.log(s.lastIndexOf("a")); //输出7
console.log(s.lastIndexOf("z")); //输出-1
includes()
判断字符串是否包含指定的子字符串。如果包含子字符串则返回 true,否则返回 false。
语法
string.includes(searchvalue, start)
- searchvalue:必需,规定要查找的字符串值;
- start:可选,规定在字符串中开始检索的位置,默认为 0。
案例
let s = "abcdefgabcdefg";
console.log(s.includes("a")); // 输出结果:true
console.log(s.includes("a", 1)); // 输出结果:true
console.log(s.includes("z")); // 输出结果:false
console.log(s.includes("abc")); // 输出结果:true
console.log(s.includes("abc", 1)); // 输出结果:true
console.log(s.includes("abc", 8)); // 输出结果:false
startsWith()
判断当前字符串是否以指定的子字符串开始。如果是以指定的子字符串开头返回 true,否则 false。
语法
string.startsWith(searchvalue, start)
- searchvalue:必需,规定要查找的字符串值;
- start:可选,规定在字符串中开始检索的位置,默认值为 0。
案例
let s = "abcdefgabcdefg";
console.log(s.startsWith("a")); // 输出结果:true
console.log(s.startsWith("a", 1)); // 输出结果:false
console.log(s.startsWith("b", 1)); // 输出结果:true
console.log(s.startsWith("abc")); // 输出结果:true
console.log(s.startsWith("abc", 1)); // 输出结果:false
console.log(s.startsWith("abc", 7)); // 输出结果:true
endsWith()
判断当前字符串是否是以指定的子字符串结尾。如果是以指定的子字符串结尾返回 true,否则 false。
语法
string.endsWith(searchvalue, length)
- searchvalue:必需,规定要查找的字符串值;
- length: 可选:规定字符串的长度,默认值为原始字符串长度 string.length。
案例
let s = "abcdefgabcdefg";
console.log(s.endsWith("g")); // 输出结果:true
console.log(s.endsWith("g", 13)); // 输出结果:false
console.log(s.endsWith("f")); // 输出结果:false
console.log(s.endsWith("f", s.length - 1)); // 输出结果:true
console.log(s.endsWith("efg")); // 输出结果:true
console.log(s.endsWith("efg", 7)); // 输出结果:true
连接多个字符串
concat()
连接两个或多个字符串。该方法不会改变原有字符串,会返回连接两个或多个字符串的新字符串。
语法
string.concat(string1, string2, ..., stringn)
案例
let s = "abc";
console.log(s); // 输出结果:abc
console.log(s.concat("def")); // 输出结果:abcdef
console.log(s.concat("def", "ghi")); // 输出结果:abcdefghi
字符串分割成数组
split()
将一个字符串分割成字符串数组。该方法不会改变原始字符串。
语法
string.split(separator,limit)
- separator:必需。字符串或正则表达式,从该参数指定的地方分割字符串。
- limit:可选。该参数可指定返回的数组的最大长度。默认值为字符串长度string.length。
案例
let s = "abc dd e";
console.log(s); // 输出结果:abc dd e
console.log(s.split("")); // 输出结果:['a', 'b', 'c',' ', 'd', 'd',' ', 'e']
console.log(s.split(" ")); // 输出结果:[ 'abc', 'dd', 'e' ]
console.log(s.split("a")); // 输出结果:[ '', 'bc dd e' ]
console.log(s.split("c")); // 输出结果:[ 'ab', ' dd e' ]
console.log(s.split("d")); // 输出结果:[ 'abc ', '', ' e' ]
console.log(s.split("e")); // 输出结果:[ 'abc dd ', '' ]
console.log(s.split("c", 1)); // 输出结果:[ 'ab' ]
console.log(s.split("c", 2)); // 输出结果:[ 'ab', ' dd e' ]
- 在将字符串分割成数组时,可以同时拆分多个分割符,使用正则表达式即可实现:
let s = "abc,dd;e";
console.log(s); // 输出结果:abc,dd;e
console.log(s.split(/[,;]/)); // 输出结果:[ 'abc', 'dd', 'e' ]
截取字符串
slice()
截取字符串的某个部分,并以新的字符串返回被截取的部分,即会改变原来的字符串。
语法
string.slice(start,end)
- start:必需。 要截取字符串的起始下标。如果为负数,则从尾部开始截取,最后一个字符的下标是-1,倒数第二个字符的下标是-2,以此类推。
- end:可选。 要截取的字符串结尾的下标。不可以为负数。
案例
let s = "abcdefg";
console.log(s.slice(0)); // 输出结果:abcdefg
console.log(s.slice(1)); // 输出结果:bcdefg
console.log(s.slice(6)); // 输出结果:g
console.log(s.slice(-2)); // 输出结果:fg
console.log(s.slice(1, 4)); // 输出结果:bcd
console.log(s.slice(-2, 6)); // 输出结果:f
console.log(s.slice(4, 1)); // 输出结果:""
console.log(s.slice(-2, -3)); // 输出结果:""
console.log(s.slice(5, -2)); // 输出结果:""
substr()
截取从指定下标开始的指定长度的字符串。
语法
string.substr(start,length)
- start :必需。截取的字符串的起始下标。必须是数值。如果为负数,则从尾部开始截取,最后一个字符的下标是-1,倒数第二个字符的下标是-2,以此类推。
- length:可选。截取的字符串的长度。必须是数值,不可以为负数。
案例
let s = "abcdefg";
console.log(s.substr()); // 输出结果:abcdefg
console.log(s.substr(0)); // 输出结果:abcdefg
console.log(s.substr(1)); // 输出结果:bcdefg
console.log(s.substr(-1)); // 输出结果:g
console.log(s.substr(-2)); // 输出结果:fg
console.log(s.substr(-2, -1)); // 输出结果:""
console.log(s.substr(0, 3)); // 输出结果:abc
substring()
截取字符串中介于两个指定下标之间的字符。
语法
string.substring(from, to)
- [from, to)
- from:必需。一个非负的整数,规定要提取的子串在字符串中的起始位置。
- to:可选。一个非负的整数,规定要提取的子串在字符串中的结尾位置,但不包含该位置的字符串。如果省略该参数,那么返回的子串会一直到字符串的结尾。
案例
let s = "abcdefg";
console.log(s.substring(1)); // 输出结果:bcdefg
console.log(s.substring(1, 3)); // 输出结果:bc
console.log(s.substring(3, 1)); // 输出结果:bc
字符串大小写转换
toLowerCase()
将字符串转换为小写,不改变原始字符串
let s = "AbCdefG";
console.log(s); // 输出结果:AbCdefG
console.log(s.toLowerCase()); // 输出结果:abcdefg
toUpperCase()
把字符串转换为大写,不改变原始字符串
let s = "AbCdefG";
console.log(s); // 输出结果:AbCdefG
console.log(s.toUpperCase()); // 输出结果:ABCDEFG
字符串模式匹配
replace()
在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
语法
string.replace(searchvalue, newvalue)
searchvalue:必需。规定子字符串或要替换的模式的 RegExp 对象。如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。( RegExp 对象即正则表达式)
newvalue:必需。一个字符串值。规定了替换文本或生成替换文本的函数。
案例
let s = "abcdefg";
console.log(s); // 输出结果:abcdefg
console.log(s.replace("c", "z")); // 输出结果:abzdefg
match()
在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。
案例
let s = "abcdefg";
console.log(s); // 输出结果:abcdefg
console.log(s.match("c"));
// 输出结果:[ 'c', index: 2, input: 'abcdefg', groups: undefined ]
search()
检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,返回第一个子字符串相匹配的起始位置。
语法
string.search(searchvalue)
- searchvalue:要检索的子字符串
案例
let s = "abcdefg";
console.log(s); // 输出结果:abcdefg
console.log(s.search("c")); // 输出结果:2
获取字符串本身
valueOf()
返回字符串对象的原始值
let s = ["abc", "efg"];
console.log(s.valueOf()); // 输出结果:[ 'abc', 'efg' ]
toString()
返回字符串对象本身,将其他类型数据转换成字符串
let s = ["abc", "efg"];
let s1 = "abc";
let s2 = "123";
console.log(s.toString()); // 输出结果:abc,efg
console.log(s1.toString()); // 输出结果:abc
console.log(typeof s2.toString()); // 输出结果:string
重复字符串
repeat()
重复字符串
语法
string.repeat(count)
- count表示字符串重复的次数
- count如果是小数,会向下取整
- count如果是负数,会报错
- count如果是字符串,则先将字符串转换成数字
案例
let s = "a";
console.log(s.repeat(3)); // 输出结果:aaa
console.log(s.repeat(3)); // 输出结果:aaa
// console.log(s.repeat(-3)); // 输出结果:报错
console.log(s.repeat("A")); // 输出结果:""
补齐字符串长度
padStart(),padEnd()
如果某个字符串不够指定长度,padStart()
在头部补齐字符串,padEnd()
在尾部补齐字符串
语法
- 接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
案例
console.log("a".padStart(3, "efg")); // 输出结果:efa
console.log("a".padStart(4, "efg")); // 输出结果:efga
console.log("a".padEnd(3, "efg")); // 输出结果:aef
console.log("a".padEnd(4, "efg")); // 输出结果:aefg
字符串转换为数字
parseInt()
语法
parseInt(string, radix)
- string:必需。要被解析的字符串。
- radix:可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
案例
- 当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
parseInt("10"); // 输出结果:10
parseInt("17",8); // 输出结果:15 (8+7)
parseInt("010"); // 输出结果:10
- 当参数 radix 的值以 “0x” 或 “0X” 开头,将以 16 为基数:
parseInt("0x10") // 输出结果:16
- 当参数 radix 的值小于 2 或者大于 36,则 parseInt() 将返回 NaN:
parseInt("50", 1) // 输出结果:NaN
parseInt("50", 40) // 输出结果:NaN
- 只有字符串中的第一个数字会被返回,当遇到第一个不是数字的字符为止
parseInt("40 4years") // 输出结果:40
- 如果字符串的第一个字符不能被转换为数字,就会返回 NaN
parseInt("new100") // 输出结果:NaN
- 字符串开头和结尾的空格是允许的
parseInt(" 60 ") // 输出结果: 60
parseFloat()
- parseFloat() 方法可解析一个字符串,并返回一个浮点数。
parseFloat("10.00") // 输出结果:10.00
parseFloat("10.01") // 输出结果:10.01
parseFloat("-10.01") // 输出结果:-10.01
parseFloat("40.5 years") // 输出结果:40.5
- 如果参数字符串的第一个字符不能被解析成为数字,则 parseFloat 返回 NaN
parseFloat("new40.5") // 输出结果:NaN
到第一个不是数字的字符为止
parseInt("40 4years") // 输出结果:40
- 如果字符串的第一个字符不能被转换为数字,就会返回 NaN
parseInt("new100") // 输出结果:NaN
- 字符串开头和结尾的空格是允许的
parseInt(" 60 ") // 输出结果: 60
parseFloat()
- parseFloat() 方法可解析一个字符串,并返回一个浮点数。
parseFloat("10.00") // 输出结果:10.00
parseFloat("10.01") // 输出结果:10.01
parseFloat("-10.01") // 输出结果:-10.01
parseFloat("40.5 years") // 输出结果:40.5
- 如果参数字符串的第一个字符不能被解析成为数字,则 parseFloat 返回 NaN
parseFloat("new40.5") // 输出结果:NaN