面试准备一之正则篇

1. 将把字符串中所有单词的首字母都转换为大写。
2. 判断一个字符串中出现次数最多的字符,并统计字数。
3. 驼峰转连字符,连字符转为驼峰。
4. 价格千分位格式化,例如12233556.76675格式化之后12,233,556.76
5. 有一段字符串,var str='name=ThreePen;age=18;sex=1';编写一个函数获得参数名和参数值
 
 
 
---------------------------答案分割线---------------------------
 
1. 正则方式如下,另外,css有个属性text-transform也可以实现。
function formatStr(str){
	return str.replace(/w+/g, function(word){
   return word.substring(0,1).toUpperCase()+word.substring(1);}
  );
}

2. 

var s = 'aaabbbcccaaabbbaaabbbbbbbbbb';
var a = s.split('');
a.sort();
s = a.join('');
var pattern = /(w)1*/g;
var ans = s.match(pattern);
ans.sort(function(a, b) {
  return a.length < b.length;
});;
console.log(ans[0][0] + ': ' + ans[0].length);

3.

var s = "fooStyleCss";
s = s.replace(/([A-Z])/g,"-$1").toLowerCase();

var s1 = "foo-style-css";
s1 = s1.replace(/-(w)/g, function(all, letter){
   return letter.toUpperCase();
});  

4.

function formatNum(num){
   return (num.toFixed(2) + '').replace(/d{1,3}(?=(d{3})+(.d*)?$)/g, '$&,');
}

5.

function paramParse(str,name){
  var reg=new RegExp(name+'=([^;]*)(;|$)');
  var arr=str.match(reg);
  if(arr){
     return arr[1];
  }else{
     return null;
  }
}

  

  

原文地址:https://www.cnblogs.com/cheemon/p/6390486.html