在字符串中大写单词的最佳方法是什么?
当前回答
/**
* Capitalizes first letters of words in string.
* @param {string} str String to be modified
* @param {boolean=false} lower Whether all other letters should be lowercased
* @return {string}
* @usage
* capitalize('fix this string'); // -> 'Fix This String'
* capitalize('javaSCrIPT'); // -> 'JavaSCrIPT'
* capitalize('javaSCrIPT', true); // -> 'Javascript'
*/
const capitalize = (str, lower = false) =>
(lower ? str.toLowerCase() : str).replace(/(?:^|\s|["'([{])+\S/g, match => match.toUpperCase());
;
修复了Marco Demaio的解决方案,在前面有空格的第一个字母不大写。
capitalize(' javascript'); // -> ' Javascript'
可以处理国家符号和重音字母。
capitalize('бабушка курит трубку'); // -> 'Бабушка Курит Трубку'
capitalize('località àtilacol') // -> 'Località Àtilacol'
可以处理引号和大括号。
capitalize(`"quotes" 'and' (braces) {braces} [braces]`); // -> "Quotes" 'And' (Braces) {Braces} [Braces]
其他回答
function capitalize(s){
return s.toLowerCase().replace( /\b./g, function(a){ return a.toUpperCase(); } );
};
capitalize('this IS THE wOrst string eVeR');
输出:“这是有史以来最糟糕的字符串”
更新:
这个解决方案似乎取代了我的:https://stackoverflow.com/a/7592235/104380
一个简单,直接(非正则)的解决方案:
const capitalizeFirstLetter = s =>
s.split(' ').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')
将字符串拆分为单词数组(使用空格分隔符) 将每个单词分成第一个字符+单词中的其余字符 第一个字母转换为大写字母,其余字母保持原样 将数组连接回带有空格的字符串
用这个:
String.prototype.toTitleCase = function() { 返回this.charAt(0).toUpperCase() + this.slice(1); } 让STR = 'text'; document.querySelector(#演示)。innerText = str.toTitleCase(); <div class = "app"> <p id = "demo"></p> . < / div >
/**
* Capitalizes first letters of words in string.
* @param {string} str String to be modified
* @param {boolean=false} lower Whether all other letters should be lowercased
* @return {string}
* @usage
* capitalize('fix this string'); // -> 'Fix This String'
* capitalize('javaSCrIPT'); // -> 'JavaSCrIPT'
* capitalize('javaSCrIPT', true); // -> 'Javascript'
*/
const capitalize = (str, lower = false) =>
(lower ? str.toLowerCase() : str).replace(/(?:^|\s|["'([{])+\S/g, match => match.toUpperCase());
;
修复了Marco Demaio的解决方案,在前面有空格的第一个字母不大写。
capitalize(' javascript'); // -> ' Javascript'
可以处理国家符号和重音字母。
capitalize('бабушка курит трубку'); // -> 'Бабушка Курит Трубку'
capitalize('località àtilacol') // -> 'Località Àtilacol'
可以处理引号和大括号。
capitalize(`"quotes" 'and' (braces) {braces} [braces]`); // -> "Quotes" 'And' (Braces) {Braces} [Braces]
http://www.mediacollege.com/internet/javascript/text/case-capitalize.html是众多答案中的一个。
谷歌可以是解决此类问题所需的全部内容。
naïve方法是用空格分隔字符串,结果数组中每个元素的首字母大写,然后将它们重新连接起来。这就保留了现有的大写(例如,HTML仍然是HTML,而不会变成像HTML那样愚蠢的东西)。如果不希望产生这种影响,请在拆分字符串之前将整个字符串转换为小写字母。
推荐文章
- Javascript和regex:分割字符串并保留分隔符
- 如何检查DST(日光节约时间)是否有效,如果是,偏移量?
- 如何打破_。在underscore.js中的每个函数
- 如何在jQuery中获得当前日期?
- 如何创建一个日期对象从字符串在javascript
- 输入触发器按钮单击
- 获取对象的属性名
- 如何检查用户是否可以回到浏览器历史
- 在Android上将字符串转换为整数
- 删除字符串的最后3个字符
- 相当于字符串。jQuery格式
- 如何在vue-cli项目中更改端口号
- Angular 2模板中的标签是什么意思?
- JavaScript .includes()方法的多个条件
- 如何大写一个字符串的第一个字母在省道?