将字符串的首位换成大写其余小写。

1、for循环:

[javascript]  view plain  copy
  1. var a = 'Hi, my name\'s Han Meimei, a SOFTWARE engineer';  
  2.   
  3. //for循环  
  4. function titleCase(s) {  
  5.     var i, ss = s.toLowerCase().split(/\s+/);  
  6.     for (i = 0; i < ss.length; i++) {  
  7.         ss[i] = ss[i].slice(0, 1).toUpperCase() + ss[i].slice(1);  
  8.     }  
  9.     return ss.join(' ');  
  10. }  
  11. console.log(titleCase(a));  

这个逻辑应该说非常常见。

2、for循环+replace:

[javascript]  view plain  copy
  1. //for循环+replace  
  2. function titleCase1(str) {  
  3.     //将字符串分解为数组并将其小写化  
  4.     var convertToArray = str.toLowerCase().split(" ");  
  5.   
  6.     for (var i = 0; i < convertToArray.length; i++) {  
  7.         var char = convertToArray[i].charAt(0);  
  8.         //使用 replace()方法将数组中的每个首字母大写化  
  9.         convertToArray[i] = convertToArray[i].replace(charfunction replace(char) {  
  10.             return char.toUpperCase();  
  11.         });  
  12.     }  
  13.     return convertToArray.join(" ");  
  14. }  
  15. console.log(titleCase1(a));  

这个跟第一个差别不大。

3、正则+replace:

[javascript]  view plain  copy
  1. //正则+replace  
  2. function titleCase2(s) {  
  3.     return s.toLowerCase().replace(/\b([\w|']+)\b/g, function(word) {  
  4.         //return word.slice(0, 1).toUpperCase() + word.slice(1);  
  5.         return word.replace(word.charAt(0), word.charAt(0).toUpperCase());  
  6.     });  
  7. }  
  8. console.log(titleCase2(a));  

思路:用正则将字符串拆分为单词数组,并对每个单词进行首字母大写处理。这里简单的把字母、数字、下划线和单撇号都视为了单词成员。

4、数组+map:

[javascript]  view plain  copy
  1. //数组+map  
  2. function titleCase3(s) {  
  3.     return s.toLowerCase().split(/\s+/).map(function(item, index) {  
  4.         return item.slice(0, 1).toUpperCase() + item.slice(1);  
  5.     }).join(' ');  
  6. }  
  7. console.log(titleCase3(a));  

思路:根据空白将字符串拆分为数组,对每个单词进行首字母大写处理,并将所有处理后的结果组成一个新数组然后拼接成字符串。

5、数组+reduce

[javascript]  view plain  copy
  1. //数组+reduce  
  2. function titleCase4(s) {  
  3.     return s.toLowerCase().split(/\s+/).reduce(function(prev, item, array, array) {  
  4.         return prev + (prev.trim() && ' ') + item.slice(0, 1).toUpperCase() + item.slice(1);  
  5.     }, '');  
  6. }  
  7. console.log(titleCase4(a));  
思路:根据空白将字符串拆分为数组,对每个单词进行首字母大写处理,并将所有处理后的结果连成一个新字符串。


6、ES6写法

[javascript]  view plain  copy
  1. //ES6写法  
  2. function titleCase5(str) {  
  3.     return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());  
  4. }  
  5. console.log(titleCase5(a));  
思路:用正则将每个单词的首字母替换成大写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值