您的位置:首页 > 职场人生

js的几道面试题

2015-03-04 23:31 411 查看
字符串转驼峰函数
例如:border-left-width -> borderLeftWidth

// 一般方法
function fnToCamel(str){
var arr = str.split('-'),
len = arr.length,
i;
for(var i = 1; i < len; i++){
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1);
}
return arr.join(''); // 注意空字符串 默认是逗号
}
// 正则
function fnToCamelRE(str){
var re = /-(\w)/g;
return str.replace(re, function(arg0, arg1){
return arg1.toUpperCase();
});
}


字符串中获取出现次数最多的字符和次数

// 一般方法
function fnGetMost(str){
var obj = {},
len = str.length,
num = 0,
i,
char;

for(var i = 0; i < len; i++){
if(obj[str[i]]){
obj[str[i]].push(str[i]);
}else{
obj[str[i]] = [str[i]];
}
}

for(i in obj){
if(num < obj[i].length){
num = obj[i].length;
char = obj[i][0];
}
}

return {
char: char,
num: num
};
}

// 正则
function fnGetMostRE(str){
var arr = str.split(''),
re = /(\w)\1+/,
num = 0,
char;

arr.sort();
str = arr.join('');

str.replace(re, function(arg0, arg1){
if(arg0.length > num){
num = arg0.length;
char = arg1;
}
});

return {
char: char,
num: num
};
}


给字符串加千分符
例如:1234567890 -> 123,456,789

// 一般方法
function fnGetThousand(str){
var len = str.length,
num = len % 3,
arr = [],
i;

if(num > 0){ // 将字符串开始的多余字符先作为整体放入数组中
arr.push(str.substring(0, num));
}

str = str.substring(num); // 去掉多余的字符
len = str.length;

for(i = 0; i < len; i += 3){ // 三个一位存入数组
arr.push(str.substr(i, 3));
}
return arr.join();
}

// 正则
function fnGetThousandRE(str){
var re = /(?=(?!\b)(\d{3})+$)/g;

return str.replace(re, ',');
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: