时间: 2019-11-15阅读: 175标签: 字符串
今天看到一个帖子,处理js中字符串每个单词的首字母大写。
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
1、for循环:
//for循环+replacefunction 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));
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));
1与2写法差别不大
这个逻辑应该说非常常见。
3、正则+replace
2、for循环+replace:
//正则+replacefunction 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));
//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));
思路:用正则将字符串拆分为单词数组,并对每个单词进行首字母大写处理。这里简单的把字母、数字、下划线和单撇号都视为了单词成员。
这个跟第一个差别不大。
10bet,4、数组+map
//数组+mapfunction 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));
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));
本文由10bet发布于Web前端,转载请注明出处:JS中将字符串中每个单词的首字母大写化【10bet】
关键词: