javascript常见笔试题:首字母大写

代码(对,就这么简单):

var str='you can you up,no can no BB';
var str1=str.replace(/\b[a-z]/g,function(keyword){
      return keyword.toUpperCase();
})
console.log("首字母大写:"+str1);

效果:


效果如上

代码解析:

主要考察正则表达式和字符串函数,实现思路如下:
1、使用正则表达式匹配首字母;
2、使用回调函数接受匹配的字符,并将其转换为大写;
3、使用新字符串或原字符串接受返回的字符串;

1、使用正则表达式定位首字母:

str.replace(/\b[a-z]/g,...)

其中,
1)\b border 表示边界,包括空格,标点符号等;
2)[a-z]匹配26个小写字母,搭配\b用于匹配首字母;
3)/.../将正则表达式包裹起来
4)g:global,全局,正则表达式修饰符,表示全局查找,找到所有符合该条件的值,即所有单词首字母;

2、使用回调函数接受匹配的字符,并将其转换为大写;
string.replace()函数的常用用法是replace("a","A");即将a替换为A,但这过于死板,26个英文字母需要调用26次replace函数,为了使其灵活,我们将'a'处写为了正则表达式以匹配更多实际需要的位置,在b处,我们使用回调函数以适应更多需求,因此,我们写上:

var str1=str.replace(/\b[a-z]/g,function(keyword){
      return keyword.toUpperCase();
});

keyword是形参,可以自定义名称,但形参命名一般要求见名知意,故建议如此命名。
回调函数接收到匹配的字母,使用toUpperCase()函数将其变为大写,并返回。

3、使用新字符串或原字符串接受返回的字符串;
这个要尤其注意,字符串一旦创建,内容不可改变!只能整体替换。所以字符串函数(split/replace/slice/substring等),都无权直接修改原字符串,只能返回加工后的新字符串。原字符串始终保持不变。所以要想获得字符串函数返回的处理结果,必须用=接住返回值!否则,处理结果没人要!就自动扔了!

var str='you can you up,no can no BB';
var str1=str.replace(/\b[a-z]/g,function(keyword){
     return keyword.toUpperCase();
})

你可能感兴趣的:(javascript常见笔试题:首字母大写)