22

也就是说,如果我有一个输入字符串:

input=“你好,世界,怎么了?”

我希望输出字符串为:

desiredOutput=“你好,世界,怎么了?”

如果字符串中任何单词的第一个字母已经大写,请保持原样。

5

4个答案4

重置为默认值
33
word=word.charAt(0)+word.substring(1).toLowerCase();
2
  • 5
    欢迎使用堆栈溢出。虽然您的代码可能会提供问题的答案,但请在它周围添加上下文,以便其他人能够了解它的作用以及它存在的原因。
    – 提奥
    2019年8月21日20:28
  • 7
    @提奥通常我会同意你所写的,但这个答案是非常自我解释的。
    – 保罗
    2023年3月11日14:26
29

const upperCaseFirstLetter=string=>`${string.slice(0,1).toUpperCase()}${string切片(1)}`;const lowerCaseAllWordsExceptFirstLetters=字符串=>string.replaceAll(/\S*/g,单词=>`${word.slice(0,1)}${work.slice(1).toLowerCase()}`);const input='hello World,whatS up?';const desiredOutput=upperCaseFirstLetter(lowerCaseAllWordsExceptFirstLitters(input));console.log(desiredOutput);

基于:

如何在JavaScript中使字符串的第一个字母大写?

如何将每个单词的第一个字母大写,比如两个单词的城市?

1
  • 我喜欢您在这里所做的工作,但如何将函数lowerCaseAllWordsExceptFirstLetters的regex替换为:/([^\s]+)/g,以便它适用于所有单词,我对一些单词(例如“Is STANBUL”)有问题,所以我提出了以下注释
    – 阿帕克
    2019年12月23日12:21
10

我也在尝试这样做,我找到了一个更短的方法:

函数格式字符串(str){返回str.replace(/(\B)[^]*/g,match=>(match.toLowerCase())).replace(/^[^]/g,match=>(match.toUpperCase()));}var text=“aaa BBB CCC”;console.log(formatString(文本));

1
  • 越短越好;你的答案比公认的答案可读性差得多。
    – 保罗
    2023年3月11日14:23
4
函数titleCase(str){return str.split('').map(项=>item.charAt(0).toUpperCase()+item.slice(1).toLowerCase(()).join(“”);}console.log(titleCase(“这是我的手柄,这是我自己的喷口”);//它会打印“这是我的把手,这是我喷口”;

更改字符串参数值,你就可以走了。

你的答案

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

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