正则将每个单词开头字母转换为大写

  这个问题其实特别特别的简单,然而我阿里一面的时候可能由于比较紧张,于是没有答的很全面。在此做以总结吧……
  (1)纯正则方法

var str = 'it is my cat';
var str2 = str.replace(/\b\w/g,function(th){
          return th.toUpperCase();
 });
console.log(str2); //It Is My Cat

replace方法替换后返回一个新的字符串。我当时就是没想起来他的第二个参数可以是一个函数,这就比较坑了。这个函数可以接受3个参数:第一个是当前匹配到的字符;第二个是配到的字符串的最小索引;第三个是当前调用replace的整个字符串;
  (2)js原生方法

var str = 'it is my cat';
var arr = str.split(' ');
arr = arr.map(function(i){
  return i.slice(0, 1).toUpperCase() + i.slice(1);  
})//注意此处要有return 并且map方法将返回一个新数组
console.log(arr.join(' '));

   (3)混合

var str = 'it is my cat';
var str2=str.replace(/\b\w+\b/g, function(word){
  return word.substring(0,1).toUpperCase()+word.substring(1);
  }
 );

你可能感兴趣的:(正则表达式)