【问题标题】:How can I make the first letter of a variable always capital? [duplicate]如何使变量的第一个字母始终大写? [复制]
【发布时间】:2011-10-26 15:24:44
【问题描述】:

可能重复:
Capitalize the first letter of string in JavaScript

我正在做一个叫做“HTML 测验”的东西。它是用 JavaScript 制作的。当用户第一次输入它时,他们必须输入他们的名字。一旦他们单击提交,他们输入的名称就会保存到一个变量中。当它说:

亲爱的内森,

您即将参加 HTML 测验。请.....

我觉得这样更好看:

亲爱的内森,

您即将参加 HTML 测验。请.....

但是,如果用户输入的姓名以小写字母开头,它将保持这种状态。如果第一个字母是小写with jQuery,有没有办法让第一个字母变成大写字母?

例如,这里是一个简单的名字输入脚本:http://jsfiddle.net/RcLt6/

如果您以全小写输入您的姓名,当然,它会全小写。无论如何,如何使输入的第一个字符始终大写?

【问题讨论】:

  • 这在this Stack Overflow Question中得到了很好的回答
  • 这不是重复的,因为我不想小写所有字母,只小写第一个。
  • @Nathan:但它被称为“将 JavaScript 中字符串的首字母大写”。
  • @Tomalak 哦,我明白你的意思了。我只是在看那里的第一个答案。
  • .. 称为“capitaliseFirstLetter”,首字母大写... :)

标签: javascript jquery html css


【解决方案1】:

这样就可以了:

str = str[0].toUpperCase() + str.slice(1);

现场演示: http://jsfiddle.net/qNJVQ/


顺便说一句,将 INPUT 放在 LABEL 中 - 这样您就不必使用 for 属性将标签与输入字段相关联:

<label>
    Name: <input type="text">
</label>

【讨论】:

  • 谢谢!我是否只需将str 替换为name? (name 是保存名称值的变量)
  • @Nathan 请注意,字符串上的[] 表示法在 IE7 和 IE6 中不起作用,因此如果您关心这些浏览器,您应该使用 str.charAt(0) 而不是 str[0]。跨度>
  • @Šime 谢谢,但我并不真正关心 IE 8 及以下版本,哈哈。我的项目不支持这些。只有 IE 9、Firefox、Safari、Google Chrome 等(基本上所有的优秀/现代浏览器都受支持)大多数观众无论如何都会使用非 IE 浏览器,所以这并不重要。感谢您的回答! :)
  • 使用符合标准的语法。并且不要像这样将&lt;input&gt; 包裹在&lt;label&gt; 中:这是一种诱人的懒惰,但它不是可移植的……也不是语义的。
  • @Tomalak 但是str[0] 是符合标准的——它在 ES5 中。我必须承认我无法在 ES5 规范 :) 中找到它,但在 Mozilla states it is in ES5 中找到它,并且 kangax 在 his ES5 table 中将其列为 ES5 特性。
猜你喜欢
  • 2011-08-18
  • 2015-12-11
  • 1970-01-01
  • 2019-08-19
  • 2020-09-15
  • 2014-11-26
  • 1970-01-01
  • 2018-04-03
相关资源
最近更新 更多