整理九道关于javascript字符串的笔试题
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'))
如果有更好的写法的话,请大家能够评论指教一下,谢谢
赞 (0)