这个问题其实特别特别的简单,然而我阿里一面的时候可能由于比较紧张,于是没有答的很全面。在此做以总结吧……
(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);
}
);