美文网首页
JS学习记录 - 字符串

JS学习记录 - 字符串

作者: 幻之国2012 | 来源:发表于2022-07-07 17:09 被阅读0次

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() 可以传递多个参数, 会按次序拼接

相关文章

网友评论

      本文标题:JS学习记录 - 字符串

      本文链接:https://www.haomeiwen.com/subject/pmusbrtx.html