js的几道面试题
2015-03-04 23:31
411 查看
字符串转驼峰函数
例如:border-left-width -> borderLeftWidth
字符串中获取出现次数最多的字符和次数
给字符串加千分符
例如:1234567890 -> 123,456,789
例如: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, ','); }