字符串的所有方法都会返回一个新字符串,不会修改原始字符串字符串 + 任意类型
都会强制 toString()
基本包装类型: String、Number、Boolean
获取字符串某一字符
原始: str.charAt(索引值)
H5: str[索引值]
字符串操作方法
方法 | 释义 |
---|---|
contact() | 拼接字符串,等效于 + ,+ 更常用 |
slice(start[, end]) | 从 start 位置开始,截取到 end 位置,end 取不到 |
substring(start[, end]) | 从 start 位置开始,截取到 end 位置,end 取不到 |
substr(start[, length]) | 从 start 位置开始,截取 length 个字符 |
trim() | 去除字符串前后的空格 |
replace(regexp/substr, newSubStr/function) | 只替换找到的第一个字符,regexp 匹配到的内容或 substr 会被 newSubStr 或function 的返回值替换 |
toUpperCase() | 将小写字母转换为大写 |
toLowerCase() | 将大写字母转换为小写 |
indexOf(searchValue [, fromIndex]) | 从 fromIndex 开始,从前往后查找 searchValue ,没找到返回 -1 |
lastIndexOf(searchValue[, fromIndex]) | 从 fromIndex 开始,从后往前查找 searchValue ,没找到返回 -1 |
padStart(targetLength [,padString]) | 当 str.length 不足 targetLength 时,用 padString 在左侧重复填充,padString 过长时只保留左侧部分,可用作日期格式化 |
str.charCodeAt(index) | 返回字符串 str 的 index-1 位的的 ASC 码,为 Number |
String.fromCharCode(num) | 返回 num 在 ASC 中对应的字符,为 String |
split(str)
依据str
匹配到的字符切割字符串
1 | 'worry'.split('r') |
例一:将worry替换为wo!!y的两种方法
不使用 split
:
1 | const str = "worry"; |
使用 split
:
1 | "worry".split( "r" ).join( "!" ); // "wo!!y" |
例二:去除字符串中间空格
1 | " w o r r y ".split( " " ).join( "" ); // "worry" |
substring 和 slice 的区别
substring(start,stop)
- 当
start
等于stop
时 返回空字符串。 stop
可选:如果省略该参数,那么返回的子串会一直到字符串的结尾。- 如果
start
>stop
,substring
会交换着两个参数,即从end
参数开始截取到start-1
位置结束。 - 如果start或者stop中任意一个值大于字符串长度(length),那么这个值将会被字符串的长度替换。替换后看是否满足条件3,满足则走继续第3步。
- 如果
start
和stop
中任意一个值为负数(<0)或者是 NaN(非数字),那么这个值会当做0
来处理。
slice(start,stop):
当
start
等于stop
时 返回空字符串,和substring
是一样的效果。stop
可选:如果省略该参数,那么返回的子串会一直到字符串的结尾。和substring
一样效果。如果
start
>stop
,slice
不会交换着两个参数位置,而是直接返回空""
。如果
start
或者stop
中任意一个值大于字符串长度(length),那么这个值将会被字符串的长度替换。和substring
一样效果。如果
start
是负数(<0):那么截取字符串将会以字符串长基准,向前减start
绝对值个字符串开始到stop
处结束。
例:bc 从 6-5 开始到 3 处结束,6 为字符串长度 等同于 slice(1,3);
1 | "abcdef".slice( -5,3 ); // "bc" |
如果 stop
是负数:那么会替换 stop
为( length - 1 ) - math.abs( stop )
;
1 | "abcdef".slice( 1,-2 ); //bcd, 从 1 开始 到 6 - 1 - 2 = 3 处结束 |