JS中将字符串中每个单词的首字母大写化
今天看到一个帖子,处理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:
//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中将字符串中每个单词的首字母大写化的更多相关文章
- 关于字符串中每个单词的首字母大写化问题之 拆分split(/\s+/)
var a = 'Hi, my name\'s Han Meimei, a SOFTWARE engineer'; //for循环 function titleCase(s) { var i, ss ...
- JavaScript符串中每个单词的首字母大写化
map() + replace() function titleCase(str) { var convertToArray = str.toLowerCase().split(" &quo ...
- CSS中使用text-transform实现首字母大写
CSS中首字母大写怎么实现?日常生活中需求方对英文的要求比较多,有的时候需要让英文单词或拼音首个字母大写;有的时候需要让全文中英文单词全大写或小写.这时候我们就需要text-transform属性了. ...
- 如果json中的key需要首字母大写怎么解决?
一般我们命名都是驼峰式的,可是有时候和第三方接口打交道,也会遇到一些奇葩,比如首字母大写........额 这是个什么鬼,对方这么要求,那我们也得这么写呀. 于是乎,第一种方式:把类中的字段首字母大写 ...
- js判断字符串中是否有数字和字母
var p = /[0-9]/; var b = p.test(string);//true,说明有数字var p = /[a-z]/i; var b = p.test(string);//true, ...
- JS 将一段文本 每个英文首字母大写
function replaceStr(str){ // 正则法 str = str.toLowerCase(); var reg = /\b(\w)|\s(\w)/g; // \b判断边界\s判断空 ...
- Python - 首字母大写(capwords) 和 创建转换表(maketrans) 具体解释
首字母大写(capwords) 和 创建转换表(maketrans) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27 ...
- JS replace()方法-字符串首字母大写
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. replace()方法有两个参数,第一个参数是正则表达式,正则表达式如果带全局标志/g,则是代表替换 ...
- text-transform设置单词首字母大写
text-transform 一.语法 text-transform 主要用于设置文本的大小写. text-transform有5个值,分别如下: none. 默认值. capitalize. 文 ...
随机推荐
- AtomicReference与volatile的区别
首先volatile是java中关键字用于修饰变量,AtomicReference是并发包java.util.concurrent.atomic下的类.首先volatile作用,当一个变量被定义为vo ...
- Hibernate Annotation 字段 默认值
http://emavaj.blog.163.com/blog/static/133280557201032262741999/ ——————————————————————————————————— ...
- finals的使用
//----------------------------------------Finals--------------------------- public class Finals { pu ...
- dp + 状态压缩 - Codeforces 580D Kefa and Dishes
Kefa and Dishes Problem's Link Mean: 菜单上有n道菜,需要点m道.每道菜的美味值为ai. 有k个规则,每个规则:在吃完第xi道菜后接着吃yi可以多获得vi的美味值. ...
- 【转】【Linux】grep命令详解
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- c# http请求,获取非200时的响应体
HttpWebResponse res = null; try { res = request.GetResponse() as HttpWebResponse; } catch (WebExcept ...
- TPS和事务响应时间的关系
例子:一个高速路有10个入口,每个入口每秒钟只能进1辆车 1.请问1秒钟最多能进几辆车? TPS=10 2.每辆车需要多长时间进行响应? reponse time = 1 3.改成20辆车 ...
- JavaScript 二、eval 和 with 函数
/* * ========================================================= * * JavaScript 词法欺骗 * * 1.欺骗词法作用域,会导致 ...
- c++ rand()
一.C++中不能使用random()函数 random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过.但在C语言中int random(num)可以这样使用,它返回的是0至num-1的 ...
- c++与js脚本交互,C++调用JS函数/JS调用C++函数
<!DOCTYPE html> <html> <body> <h1>我的第一段 JavaScript</h1> <p> Java ...