整理九道关于javascript字符串的笔试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
整理九道关于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 = stIndexOf(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.charCo deAt(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 = 'azxcvbnmsdfghjklqwertyuiopZXCVBNMASDFGHJKLQWERTYUI OP0123456789.*&^%$#@!~';
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'))
如果有更好的写法的话,请大家能够评论指教一下,谢谢
来源: