JS中将字符串中每个单词的首字母大写化
2017-01-12 09:45
465 查看
今天看到一个帖子,处理js中字符串每个单词的首字母大写。
原贴地址:关于字符串中每个单词的首字母大写化问题
受到启发,自己跟着改写了几个版本如下,请大家指正。
1、for循环:
这个逻辑应该说非常常见。
2、for循环+replace:
这个跟第一个差别不大。
3、正则+replace:
思路:用正则将字符串拆分为单词数组,并对每个单词进行首字母大写处理。这里简单的把字母、数字、下划线和单撇号都视为了单词成员。
4、数组+map:
思路:根据空白将字符串拆分为数组,对每个单词进行首字母大写处理,并将所有处理后的结果组成一个新数组然后拼接成字符串。
5、数组+reduce
思路:根据空白将字符串拆分为数组,对每个单词进行首字母大写处理,并将所有处理后的结果连成一个新字符串。
6、ES6写法
思路:用正则将每个单词的首字母替换成大写。
原贴地址:关于字符串中每个单词的首字母大写化问题
受到启发,自己跟着改写了几个版本如下,请大家指正。
1、for循环:
var a = 'Hi, my name\'s Han Meimei, a SOFTWARE engineer'; //for循环 function titleCase(s) { var i, ss = s.toLowerCase().split(/\s+/); for (i = 0; i < ss.length; i++) { ss[i] = ss[i].slice(0, 1).toUpperCase() + ss[i].slice(1); } return ss.join(' '); } console.log(titleCase(a));
这个逻辑应该说非常常见。
2、for循环+replace:
//for循环+replace function titleCase1(str) { //将字符串分解为数组并将其小写化 var convertToArray = str.toLowerCase().split(" "); for (var i = 0; i < convertToArray.length; i++) { var char = convertToArray[i].charAt(0); //使用 replace()方法将数组中的每个首字母大写化 convertToArray[i] = convertToArray[i].replace(char, function replace(char) { return char.toUpperCase(); }); } return convertToArray.join(" "); } console.log(titleCase1(a));
这个跟第一个差别不大。
3、正则+replace:
//正则+replace function titleCase2(s) { return s.toLowerCase().replace(/\b([\w|']+)\b/g, function(word) { //return word.slice(0, 1).toUpperCase() + word.slice(1); return word.replace(word.charAt(0), word.charAt(0).toUpperCase()); }); } console.log(titleCase2(a));
思路:用正则将字符串拆分为单词数组,并对每个单词进行首字母大写处理。这里简单的把字母、数字、下划线和单撇号都视为了单词成员。
4、数组+map:
//数组+map function titleCase3(s) { return s.toLowerCase().split(/\s+/).map(function(item, index) { return item.slice(0, 1).toUpperCase() + item.slice(1); }).join(' '); } console.log(titleCase3(a));
思路:根据空白将字符串拆分为数组,对每个单词进行首字母大写处理,并将所有处理后的结果组成一个新数组然后拼接成字符串。
5、数组+reduce
//数组+reduce function titleCase4(s) { return s.toLowerCase().split(/\s+/).reduce(function(prev, item, array, array) { return prev + (prev.trim() && ' ') + item.slice(0, 1).toUpperCase() + item.slice(1); }, ''); } console.log(titleCase4(a));
思路:根据空白将字符串拆分为数组,对每个单词进行首字母大写处理,并将所有处理后的结果连成一个新字符串。
6、ES6写法
//ES6写法 function titleCase5(str) { return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase()); } console.log(titleCase5(a));
思路:用正则将每个单词的首字母替换成大写。
相关文章推荐
- JS中将字符串中每个单词的首字母大写化
- javascript字符串中每个单词的首字母大写化问题
- 串的处理 在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下: 1. 把每个单词的首字母变为大写。 2. 把数字与字母之间用下划线字符(_)分
- 67.读入字符串把每个单词开始的字母大写
- 使用JavaScript 将字符串中由空格隔开的每个单词首字母大写,写出通用方法。
- 将字符串中由空格隔开的每个单词首字母大写
- Java 统计一个字符串中每个单词,或者字母出现的次数
- 给出一句英文句子: "let there be light" 得到一个新的字符串,每个单词的首字母都转换为大写
- 将字符串中的每个单词顺序进行颠倒,单词还是原来的单词,字母顺序不发生变化
- js将字符串中的每一个单词的首字母变为大写其余均为小写
- 将字符串中由空格隔开的每个单词首字母大写
- php:ucwords() --将字符串中每个单词的首字母转换为大写
- 将字符串中的每个单词顺序进行颠倒,单词还是原来的单词,字母顺序不发生变化,将字符串中的空格用 代替
- 一种将英文文章字符串每个单词首字母转成大写字母的方法
- LeetCode练习<二> 将字符串中的每个单词的字母颠倒,单词顺序不变
- python title() upper() lower() 以首字母大写的方式显示每个单词/将字符串改为全部大写或全部小写
- Java 统计一个字符串中每个单词,或者字母出现的次数
- 面试题:将一个字符串数组中的字母按照以下规则排列:表中任何单词的首字母与其前面单词的尾字母相同! 要求:字符串只由小写字母构成,且每个字符串长度在2-100之间
- 将输入字符串中每个单词的首字母变成大写
- 将字符串中每个单词首字母大写