分享

整理九道关于javascript字符串的笔试题

 印度阿三17 2021-03-30

1.写一个方法去掉字符串的空格

let str = ' abc   aa   s     '
//第一种
function trim(str){
  let reg = /\s /g
  if(typeof str == 'string'){
    return str.replace(reg,'')
  }
}
trim(str)

//第二种
str.split(' ').join('')

2.去除字符串中最后一个指定的字符或者是字符串

let str = 'abaaaaeaad'
function delChar(str,char){
  let index = str.lastIndexOf(char) //lastIndexOf 获取一个指定的字符出现在一个字符串中出现的最后的位置 从后向前搜索
  let len = [...char].length
  return str.substring(0,index) str.substring(index len,str.length) //substring 截取字符串
}
console.log(delChar(str,'aa'))

3.写一个方法把下划线命名转换成大驼峰命名

function changeName(name){
  let arr = name.split('_')
  let lastStr = arr[arr.length-1]
  arr[arr.length-1]= lastStr[0].toUpperCase() lastStr.substring(1,lastStr.length)
  return arr.join('')
}
console.log(changeName('first_name'))

4.写一个把字符串大小写切换的方法

let str = 'aSdFgH'
function toCaseStr(str){
  let strArr = []
  str.split('').forEach(i=>{
    if(i.charCodeAt()>=65&&i.charCodeAt()<=90){ //str.charCodeAt(index) 获取一个字符的unicode编码 65-90 是大写 97-122是小写
      i = i.toLowerCase()
    }else(
      i = i.toUpperCase()
    )
    strArr.push(i)
  })
  return strArr.join('')
}
console.log(toCaseStr(str))

5.统计某一个字符或字符串在另一个字符串中出现的次数

//第一种
function setCount(str,charStr){
  let count = 0
  if(!charStr) return count
  while(str.match(charStr)){
    str = str.replace(charStr,'')
    count  
  }
  return count
}

//第二种
function setCount(str,charStr){
  let len = str.match(new RegExp(charStr,'g')).length
  return len
}
console.log(setCount('ababababeeeeeee','ab'))

6.写一个获取当前url查询字符串中的参数的方法

function getParams(){
  let search = window.location.search //获取?后面的部分?name=xxx&id=xx
  search = search.substring(1,search.length) //将?截取掉
  let res = {}
  search.split('&').forEach(item=>{
    let [key,value] = item.split('=')
    res[key] = decodeURIComponent(value);
  })
  return res
}
getParams()

7.写一个方法判断字符串是否为回文字符串

function isPalindrome(s){
  if(s.length == 1) return true
  let str = s.replace(/[^a-zA-Z0-9]/g,'').toLowerCase() //因为可能有大写 统一转换为小写
  let reverseStr = str.split('').reverse().join('')
  return str == reverseStr
}
console.log(isPalindrome('A man, a plan, a canal: Panama'))

8.随机生成一个指定长度的验证码 包含大写字母 小写字母 数字 特殊字符

function getRandomCode(len) {
  const allStr = 'azxcvbnmsdfghjklqwertyuiopZXCVBNMASDFGHJKLQWERTYUIOP0123456789.*&^%$#@!~';
  let code = '';
  for (let index = 0; index < len; index  ) {
      code  = allStr.charAt(Math.floor(Math.random() * 73));
  }
  return code;
}
console.log(getRandomCode(5))

9.写一个方法删除字符串中所有相邻重复的项

function delRepeatChar(str){
  return str.replace(/(.)\1*/g,'$1')
}
console.log(delRepeatChar('aaabhhhhjjjjuiuuu'))

如果有更好的写法的话,请大家能够评论指教一下,谢谢

来源:https://www./content-1-907501.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多