js - string内置对象

 

根据字符返回位置​​​​​​​

// E:\itcast\class\php\js\day2\abc.html 截取文件名和格式
  let srcc = 'E:\\itcast\\class\\php\\js\\day2\\abc.html'
  // 查询最后一个\的位置得到文件名
  let lastGIdenx = srcc.lastIndexOf('\\')
  // 查询最后一个.的位置得到文件格式
  var lastDianIdenx = srcc.lastIndexOf(".")
  console.log(srcc.substring(lastGIdenx + 1, lastDianIdenx))
  console.log(srcc.substring(lastDianIdenx + 1))

// 1.查找字符串"abcoefoxyozzopp"中所有o出现的位置以及次数
let str = 'aboozzf'
// str.indexOf('o')
// 字符出现的次数
let n = 0
// 保存字符出现的位置下标数组
let searchPOSITION = []
// 字符第一次出现的位置
let searchStrIndex = str.indexOf('o')
let searchStrIndex2 = 0

/* function a (str, searchStr, index = 0) {
  let searchStrIndex = str.indexOf(searchStr, index)
  if (searchStrIndex < 0) {
    return
  }
  if (searchStrIndex) {
    n++
    searchPOSITION.push(searchStrIndex)
    a(str, searchStr, searchStrIndex + 1)
  }
}

a('abcoefoxyozzopp', 'o')
console.log('字符出现的次数:' + n) //  字符出现的次数:4
console.log(searchPOSITION, '字符串出现的位置') // [3, 6, 9, 12] 字符串出现的位置 */

// 方法2
/* while (searchStrIndex >= 0) {
  searchStrIndex = str.indexOf('o', searchStrIndex + 1)
  console.log(searchStrIndex)
} */

根据位置返回字符

// 2.根据位置返回字符(重点)
let uname = 'ws'
console.log(uname.charAt(0)) /'w'/
console.log(uname[0]) /'w'/

// 判断一个字符串 'aooyozzopp' 中出现次数最多的字符,并统计其次数。
let str2 = 'aooxyozzopp'
let obj = {}
for (let i = 0; i < str2.length; i++) {
  // 通过charAt(i)获取每一项字符
  let key = str2.charAt(i)
  // 判断当前对象是否含有该字符Key,如果没有添加字符key属性初始值为1;如果有则该属性值++
  if (obj[key]) {
    obj[key] += 1
  }
  else {
    obj[key] = 1
  }
}
console.log(obj)
let maxKeyNumber = 0
let maxKey = ''

for (let i in obj) {
  // 遍历每一属性的值,如果大于最大值则更替最大值并且保存最大值的Key
  if (obj[i] > maxKeyNumber) {
    maxKeyNumber = obj[i]
    maxKey = i
  }
}
console.log('出现最多的key为:' + maxKey)

字符串操作方法

let un = 'ws'
let msg = '是帅哥'
let hh = un.concat(msg)
// concat (合并字符)
console.log(hh) // 'ws是帅哥'

// replace(匹配规则/字符,替换值)
let nhh = hh.replace('ws', 'ff')
console.log(nhh) 'ff是帅哥'

  // let str = "hello kitty"
  /* substring(start,end)	提取字符串中两个指定的索引号之间的字符 */
  /* substring方法的两个参数,第一个表示以下标为多少的字符开头,
  包括该字符,第二个表示以下标为多少的字符结尾,不包括该字符和数组splice一致 */
  /* substring会返回一个截后的新字符串,对原来的字符,不会产生影响 */
  /*  let n = str.substring(1,3);
   console.log(n,str); */

// let str = "hello kitty"
  /* substring(start,end)	提取字符串中两个指定的索引号之间的字符 */
  /* substring方法的两个参数,第一个表示以下标为多少的字符开头,
  包括该字符,第二个表示以下标为多少的字符结尾,不包括该字符和数组splice一致 */
  /* substring会返回一个截后的新字符串,对原来的字符,不会产生影响 */
  /*  let n = str.substring(1,3);
   console.log(n,str); */

  /* 如果你只传一个下标,表示你从这个下标开始到最后,包括最后一个字符 */
  // let n = str.substring(1) //ello kitty
  // let n = str.substring(1, str.length) //ello kitty
  // console.log(n)

  /* 把首字母变成大写的字符串 用-分割 变成Border-case-good */
  let arr = ['border', 'case', 'good']
  /* 把数组分割成字符串 */
  /*  let arrString = arr.join('-')
   let str2 = arrString.substring(0, 1).toUpperCase() + arrString.substring(1)
   document.write(str2) */

  /* substr(start,number) 也是表示字符串截取
  第一个参数表示从什么下标开始,并包括第一个下标,
  第二个参数表示从开始的下标开始,截取几个不推荐使用这种写法*/
  /*  let str = '你好我的朋友'
   let str2 = str.substring(0, 2)
   console.log(str2)//你好
   let str3 = str.substr(0, 2)
   console.log(str3)//你好 */

  /* slice(start,end) 也是表示字符串的截取, */
  /* slice(start,end)	提取字符串中两个指定的索引号之间的字符 */
  /* slice方法的两个参数,第一个表示以下标为多少的字符开头,
  包括该字符,第二个表示以下标为多少的字符结尾,不包括该字符 */
  let str = '我们都是石头人'
  /*  let str2 = str.slice(0, 4)
   console.log(str2) //我们都是 */
  // slice和substring的区别 slice支持负数下标,substring不支持

  /* 结果是 : 是石 */
  /* let str3 = str.slice(-4, -2)
  console.log(str3) */
  /* 用substring不可以实现 */
  /* let str3 = str.substring(-4, -2)
  console.log(str3) */

  /* substring不能够用负数作为下标,没有负数下标这个功能
  而slice可以,最后一个字符就是-1 依次类推 倒数第二个字符 就是-2 */
  /* let str4 = str.substring(-3)
  console.log(str4); */

  /* ['abc','qwe'] 转成 abcQwe  字符串截取 使用slice 下标使用负数的形式*/
  /*  let arr2 = ['abc', 'qwe']
   let arr2Str = arr2.join('')
   let nArr2Str = arr2Str.slice(-arr2Str.length, -3) + arr2Str.slice(-3, -2).toUpperCase() + arr2Str.slice(-2)
   console.log(nArr2Str) */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值