17

我想使用javascript函数将每个单词的第一个字母大写

如:

这是测试--->这是测试这是测试--->这是测试这是一个测试

什么是简单的javascript函数

5
  • stackoverflow.com/questions/1026069/… 评论 2011年9月19日6:52
  • 转到小写,用空格分割成单个单词,然后在每个单词的第一个字符上转到UpperCase()。
    – 用户684934
    评论 2011年9月19日6:54
  • 2
    @reader1000:这个问题是关于大写只是字符串的第一个字符,而这是关于uopercasing每个单词的第一个字母(这要复杂得多,需要不同的解决方案)
    – 鄂西语
    评论 2011年9月19日7:29
  • 的可能副本使用javascript将字符串转换为标题大小写
    – 杰克
    评论 2012年6月11日6:01
  • 有点像CSS的观点。。。“设计”dom?文本转换:大写;
    – 工作
    评论 2018年6月21日15:42

9个答案9

重置为默认值
36

这是我用来完成工作的一句话

var str='这是一个示例';str.replace(/\b./g,函数(m){return m.toUpperCase();});

但是John Resig做了一个非常棒的脚本,可以处理很多案件http://ejohn.org/blog/title-capitalization-in-javascript/

更新

ES6+答案:

str.split(“”).map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join(“”;

也许还有比这更好的方法。它适用于重音字符。

2
  • 4
    我喜欢这个简单明了。 评论 2013年11月26日0:29
  • 1
    尝试更新后的答案。悲哀地\b条不会选择特殊字符
    – 史蒂芬
    评论 2015年11月19日17:27
10
函数大写每个单词(str){var words=str.split(“”);var arr=[];for(大写i){temp=单词[i].toLowerCase();temp=temp.charAt(0).toUpperCase()+temp.substring(1);arr.push(温度);}返回arr.join(“”);}
0
6
“tHiS iS a tESt”.replace(/[^\s]+/g,函数(str){将str.substr(0,1).toUpperCase()+str.substra(1).toLowerCase(;});

其他变体:

“tHiS iS a tESt”.replace(/(\S)(\S*)/g,函数($0,$1,$2){返回$1.toUpperCase()+$2.toLowerCase(;});
4

这是一个简单的解决方案,它将句子分解为一个数组,然后在数组中循环,创建一个新的数组,其中包含大写单词。

函数大写(str){var strArr=str.split(“”);var newArr=[];for(var i=0;i<strArr.length;i++){var第一封信=strArr[i].charAt(0).toUpperCase();var restOfWord=strArr[i].slice(1);newArr[i]=第一封信+restOfWord;}return newArr.join(“”);}
0
1

看一看来自php.js的ucwords-这似乎就是你想要的。基本上是:

函数ucwords(str){return(str+'').replace(/^([a-z])|\s+([a-z])/g,函数($1){return$1.toUpperCase();});}

请注意这是一个测试将返回这是一个测试所以你必须这样使用它:

var oldstring=“这是一个测试”;var newstring=ucwords(oldstring.toLowerCase());

或稍微修改函数:

函数ucwords(str){str=(str+'').toLowerCase();return str.replace(/^([a-z])|\s+([a-z])/g,函数($1){return$1.toUpperCase();});}var oldstring=“这是一个测试”;var newstring=ucwords(旧字符串);//这是一个测试
0
1

这将大写每个单词,每个单词之间用空格或破折号隔开

函数大写(str){str=str.toLowerCase();return str.replace(/([^-])([^-]*)/gi,函数(v,v1,v2){return v1.toUpperCase()+v2;});}

示例:

  • i lOvE oRanges=>我喜欢橘子
  • a strAnge-looKing语法=>一个奇怪的语法

1

如果你不介意使用图书馆,你可以使用糖.js 大写()

大写(all=false)中的第一个字符大写字符串,并将所有其他字母下移。如果一切属实字符串将大写。

例子:

“hello kitty”.大写()->“hello kitty”“hello kitty”.大写(true)->“hello kitty”
1

您还可以使用以下方法使用过滤器:

函数Ucwords(str){var words=str.split(“”);var arr=[];words.filter(函数(val){arr.push(val.charAt(0).to UpperCase()+val.substr(1).to LowerCase(()));})console.log(arr.join(“”).trim());return arr.join(“”).trim();}Ucwords(“这是测试”)//这是测试Ucwords(“THIS”)//此
-1
{String s=“这是为了测试”;字符串sw[]=s.split(“\\s”);字符串newS=“”;对于(int i=0;i<=sw.length-1;i++){字符串优先=sw[i].substring(0,1);字符串last=sw[i].substring(1);newS+=first.toUpperCase()+last+“”;}System.out.println(newS);}

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.