将JavaScript字符串转换为全部小写?

Der*_*rek 1260 javascript string

如何将JavaScript字符串值转换为全部小写字母?

示例:"您的名字"改为"您的名字"

Joh*_*ley 1641

var lowerCaseName = "Your Name".toLowerCase();
Run Code Online (Sandbox Code Playgroud)

  • 考虑到这一点,"toLowerCase不会影响字符串str本身的值".这是基于这里的文档https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase (25认同)
  • @RamzanChasygov它是O(n)并且比在JavaScript中重新实现它更快,除非你有一个由非常聪明的白痴编程的JavaScript引擎. (5认同)
  • 对变量调用 `toLowerCase()` 的更安全方法是 `(varName || '').toLowerCase()`; (4认同)

Ati*_*ziz 407

使用String对象的toLowerCasetoLocaleLowerCase方法.不同之处在于将考虑用户/主机的当前区域设置.根据ECMAScript语言规范(ECMA-262)的第15.5.4.17节,......toLocaleLowerCasetoLocaleLowerCase

...与toLowerCase完全相同,只是它的结果旨在为主机环境的当前语言环境生成正确的结果,而不是与语言环境无关的结果.只有少数情况(例如土耳其语)存在差异,其中该语言的规则与常规Unicode案例映射冲突.

例:

var lower = 'Your Name'.toLowerCase();
Run Code Online (Sandbox Code Playgroud)

另请注意,实现toLowerCasetoLocaleLowerCase函数可以在任何值类型上进行泛型工作.因此,即使在非String对象上也可以调用这些函数.这样做意味着在更改结果字符串值中每个字符的大小写之前自动转换为字符串值.例如,您可以直接在以下日期申请 toLowerCase:

var lower = String.prototype.toLowerCase.apply(new Date());
Run Code Online (Sandbox Code Playgroud)

这实际上相当于:

var lower = new Date().toString().toLowerCase();
Run Code Online (Sandbox Code Playgroud)

第二种形式通常是优选的,因为它的简单性和可读性.在IE的早期版本中,第一个版本具有可以使用null值的优点.应用toLowerCasetoLocaleLowerCase开启的结果null将产生null(而不是错误条件).

  • +1,这个答案应该比接受的答案更多的投票,这些答案完全没有解释,我的意思是 (20认同)
  • @JohnnyHK你是对的.这个位曾经在早期版本的IE上保持正确,它在最初发布答案的时候进行了测试.我已更新答案以反映您的反馈.谢谢. (2认同)

pka*_*ing 28

是的,JavaScript中的任何字符串都有一个toLowerCase()方法,它将返回一个新字符串,它是全部小写的旧字符串.旧字符串将保持不变.

所以,你可以这样做:

"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();
Run Code Online (Sandbox Code Playgroud)


san*_*nlu 20

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ç",反之亦然.


eww*_*ink 16

只是一个例子toLowerCase(),toUpperCase()原型尚未提供toTitleCase()toPropperCase()

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);
Run Code Online (Sandbox Code Playgroud)

编辑2018年

  • -1 此代码对于非 ASCII 的所有内容都很容易出错。例如,使用德语输入“die straße”,您将得到“Die Strasse”作为标题大小写。正确的应该是“Die Straße”。除此之外,原型污染现在也令人不悦。 (3认同)

Dan*_*Dan 12

我所许的注意,很多人都在寻找strtolower()在JavaScript中.他们期望与其他语言具有相同的功能名称,这就是为什么这篇文章就在这里.

我建议使用原生 Javascript函数

"SomE StriNg".toLowerCase()

这里的函数与PHP的函数完全相同(对于那些将PHP代码移植到js中的人)

function strToLower (str) {
    return String(str).toLowerCase();
}
Run Code Online (Sandbox Code Playgroud)

  • 使用`String(str)` (2认同)

Pau*_*bas 8

请注意,该函数仅适用于STRING对象.

例如,我正在使用插件,并且很困惑为什么我得到"extension.tolowercase不是函数"JS错误.

 onChange: function(file, extension)
    {
      alert("extension.toLowerCase()=>" + extension.toLowerCase() + "<=");
Run Code Online (Sandbox Code Playgroud)

哪个产生错误"extension.toLowerCase不是函数"所以我试了这段代码,揭示了这个问题!

alert("(typeof extension)=>" + (typeof extension) + "<=");;
Run Code Online (Sandbox Code Playgroud)

输出是"(typeof extension)=> object <=" - 所以AhHa,我没有得到输入的字符串var.虽然修复是直截了当的 - 只需将darn强制转换为String!:

var extension = String(extension);
Run Code Online (Sandbox Code Playgroud)

在强制转换后,extension.toLowerCase()函数运行正常.


小智 8

方法或功能:toLowerCase(),toUpperCase()

描述:这些方法用于覆盖从小写字母到大写字母的字符串或字母表,反之亦然.例如:"和"到"AND".

转换为大写: - 示例代码: -

<script language=javascript>
var ss = " testing case conversion method ";
var result = ss.toUpperCase();
document.write(result);
</script>
Run Code Online (Sandbox Code Playgroud)

结果:测试案例转换方法

转换为小写: - 示例代码:

<script language=javascript>
var ss = " TESTING LOWERCASE CONVERT FUNCTION ";
var result = ss.toLowerCase();
document.write(result);
</script>
Run Code Online (Sandbox Code Playgroud)

结果:测试小写转换功能

说明:在上面的例子中,

toUpperCase() method converts any string to "UPPER" case letters.
toLowerCase() method converts any string to "lower" case letters.
Run Code Online (Sandbox Code Playgroud)