如何将 JavaScript 字符串值转换为所有小写字母?
示例:"Your Name"
到"your name"
如何将 JavaScript 字符串值转换为所有小写字母?
示例:"Your Name"
到"your name"
var lowerCaseName = "Your Name".toLowerCase();
使用String对象的toLowerCase或toLocaleLowerCase方法。不同之处在于将考虑用户/主机的当前区域设置。根据ECMAScript 语言规范 (ECMA-262) 的第 15.5.4.17 节,……toLocaleLowerCase
toLocaleLowerCase
...与 toLowerCase 的工作原理完全相同,不同之处在于它的结果旨在为宿主环境的当前语言环境生成正确的结果,而不是与语言环境无关的结果。只会在少数情况下(例如土耳其语)有所不同,其中该语言的规则与常规 Unicode 大小写映射冲突。
例子:
var lower = 'Your Name'.toLowerCase();
另请注意,实现了toLowerCase
和toLocaleLowerCase
函数以在任何值类型上通用。因此,您甚至可以在非String
对象上调用这些函数。这样做将意味着在更改结果字符串值中每个字符的大小写之前自动转换为字符串值。例如,您可以直接在这样的日期申请 toLowerCase
:
var lower = String.prototype.toLowerCase.apply(new Date());
这实际上等效于:
var lower = new Date().toString().toLowerCase();
由于其简单性和可读性,通常首选第二种形式。在早期版本的 IE 上,第一个的好处是它可以使用一个null
值。应用toLowerCase
或toLocaleLowerCase
打开的结果null
将产生null
(而不是错误条件)。
是的,JavaScript 中的任何字符串都有一个toLowerCase()
方法,该方法将返回一个新字符串,该字符串是所有小写的旧字符串。旧字符串将保持不变。
因此,您可以执行以下操作:
"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();
toLocaleUpperCase() 或小写函数的行为不像它们应该做的那样。
例如,在我的系统 Safari 4、Chrome 4 Beta、Firefox 3.5.x 中,它错误地转换了带有土耳其语字符的字符串。
浏览器分别响应 navigator.language 为“en-US”、“tr”、“en-US”。
但是就我所能找到的,没有办法在浏览器中获取用户的 Accept-Lang 设置。
尽管我已将每个浏览器配置为首选 tr-TR 语言环境,但只有 Chrome 给我带来了麻烦。
我认为这些设置只影响 HTTP 标头,但我们无法通过 JS 访问这些设置。
在Mozilla 文档中,它说“字符串中的字符被转换为......同时尊重当前的语言环境。
对于大多数语言,这将返回与...相同的结果。”。
我认为它对土耳其语有效,它配置为 en 或 tr 并没有什么不同。
在土耳其语中,它应该将“DİNÇ”转换为“dinç”,将“DINÇ”转换为“dınç”,反之亦然。
只是一个例子toLowerCase()
,toUpperCase()
和原型尚未可用toTitleCase()
或toProperCase()
String.prototype.toTitleCase = function() {
return this.split(' ').map(i => i[0].toUpperCase() + i.substring(1).toLowerCase()).join(' ');
}
String.prototype.toPropperCase = function() {
return this.toTitleCase();
}
var OriginalCase = 'Your Name';
var lowercase = OriginalCase.toLowerCase();
var upperCase = lowercase.toUpperCase();
var titleCase = upperCase.toTitleCase();
console.log('Original: ' + OriginalCase);
console.log('toLowerCase(): ' + lowercase);
console.log('toUpperCase(): ' + upperCase);
console.log('toTitleCase(): ' + titleCase);
2018年编辑