js 数据类型:
字符串(String) 数值(Number) 布尔值(Boolean) 数组(Array) 对象(Object)
字符串常用方法汇总:
查找特定文案: indexOf() lastIndexOf() search()
字符串取值: slice() substring() substr()
替换字符串: replace()
转大写小写: toUpperCase() toLowerCase()
字符串转数组: split()
字符串拼接: concat()
其他更多方法: https://www.w3school.com.cn/jsref/jsref_obj_string.asp
字符串中查找特定文案
let str = "The full name of China is the People's Republic of China."
// 查找特定文案'China'在字符串中 第一次出现位置的 索引, 找不到则返回 -1
str.indexOf('China')
// 查找特定文案'China'在字符串中 最后一次出现位置的索引, 找不到则返回 -1
str.lastIndexOf('China')
// 从字符串的第 num 位向后查找 特定文案'China' 第一次出现位置的索引, 找不到则返回 -1
str.indexOf('China', num)
// 从字符串的第 num 位向前查找 特定文案'China' 第一次出现位置的索引, 找不到则返回 -1
str.lastIndexOf('China', num)
// 返回特定文案'China' 在字符串中 第一次 出现位置的索引, 找不到则返回 -1
str.search('China')
indexOf() 与 search() 的区别
search() // 方法不支持设置第二个开始位置参数
indexOf() // 方法无法设置更强大的搜索值, 例如正则表达式
字符串取值
slice()
let str = 'ABCDEFG'
// 首先定义字符串 str , str.length = 7; str[0] = 'A' str[6] = 'G'
str.slice(0, 2) / 输出 'AB'
str.slice(1, 2) / 输出 'B'
str.slice(2, 1) / 无输出
str.slice(2) / 输出 'CDEFG'
str.slice(-4, -2) / 输出 'DE'
str.slice(-4, 2) / 无输出
str.slice(-2, -4) / 无输出
str.slice(-7) / 输出 'ABCDEFG'
str.slice(-6) / 输出 'BCDEFG'
str.slice(-1) / 输出 'G'
由上方例子的输入结果可以看出 slice(m,n) 方法的取值规则
(1) 取值方向永远是从左到右, m表示取值开始位置, n 表示取值结束位置
如果有n, m 必须小于 n, 且 n 不能等于 0
(2) 假设取出的字符串 = x;
如只有 m; m >= x < str.length
如果有 n; m >= x < n
(3) 字符串正向索引从0开始, 逆向索引从 -1 开始
提示: 负值位置不适用 Internet Explorer 8 及其更早版本。
substring()
(1) substring(m,n) 方法 m 与 n 不能是负数
(2) 其他使用规则与 slice(m,n) 方法一致
substr()
let str = 'ABCDEFG'
// 首先定义字符串 str , str.length = 7; str[0] = 'A' str[6] = 'G'
str.substr(0, 2) / 输出 'AB'
str.substr(1, 2) / 输出 'BC'
str.substr(2, 1) / 输出 'C'
str.substr(2) / 输出 'CDEFG'
str.substr(-4, -2) / 无输出
str.substr(-4, 2) / 输出 'DE'
str.substr(-2, -4) / 无输出
str.substr(-7) / 输出 'ABCDEFG'
str.substr(-6) / 输出 'BCDEFG'
str.substr(-1) / 输出 'G'
由上方例子输入 与 slice(m, n) 方法输入对比 可以看出 substr(m, n) 方法取值规则
(1) substr 方法的 m 与 slice 方法的 m 意义一致, 表示取值的开始位置
(2) substr 方法的 n, 表示 取值长度, 即 从开始位置起 向右数 n 位连续的数, n 不能小于等于 0
例如: substr(1, 2) // 表示从字符串索引的第1位开始取值, 向右数2个字符长度
替换字符串
replace()
let str = 'aBC-ACD-AEF'
let str2 = str.replace('A', 'B')
let str3 = str.replace(/A/g, () => { return '(Aa)' })
console.log( str ) / 输出 'aBC-ACD-AEF'
console.log( str2 ) / 输出 'aBC-BCD-AEF'
console.log( str3 ) / 输出 'aBC-(Aa)CD-(Aa)EF'
(1) replace(m, n) 默认将匹配到的第一个 m 替换为 n, 并返回新的字符串, 且区分大小写
(2) m 与 n 可以是处理字符串的表达式, 如正则表达式
字符串大小写转换
let str = 'AbCdEfG'
str.toUpperCase() / 输出 'ABCDEFG'
str.toLowerCase() / 输出 'abcdefg'
字符串转数组
let str = 'AB,B A,Bc A,D,C'
str.split('') / 输出 ['A', 'B', ',', 'B', ' ', 'A', ',', 'B', 'c', ' ', 'A', ',', 'D', ',', 'C']
str.split(' ') / 输出 ['AB,B', 'A,Bc', 'A,D,C']
str.split(',') / 输出 ['AB', 'B A', 'Bc A', 'D', 'C']
str.split('A') / 输出 ['', 'B,B ', ',Bc ', ',D,C']
字符串拼接
let str1 = 'Hello'
let str2 = 'World'
str1.concat(str2) / 输出 'HelloWorld'
str1.concat(' ', str2) / 输出 'Hello World'
concat() 可以传递多个参数, 会按次序拼接










网友评论