如何使变量的第一个字母始终大写? [复制]
Posted
技术标签:
【中文标题】如何使变量的第一个字母始终大写? [复制]【英文标题】: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”,首字母大写... :) 【参考方案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 浏览器,所以这并不重要。感谢您的回答! :)
使用符合标准的语法。并且不要像这样将<input>
包裹在<label>
中:这是一种诱人的懒惰,但它不是可移植的……也不是语义的。
@Tomalak 但是str[0]
是符合标准的——它在 ES5 中。我必须承认我无法在 ES5 规范 :)
中找到它,但在 Mozilla states it is in ES5 中找到它,并且 kangax 在 his ES5 table 中将其列为 ES5 特性。以上是关于如何使变量的第一个字母始终大写? [复制]的主要内容,如果未能解决你的问题,请参考以下文章