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


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

示例:“您的名字”改为“您的名字”


1137
2017-09-30 20:22


起源




答案:


var lowerCaseName = "Your Name".toLowerCase();

1512
2017-09-30 20:26



考虑到这一点,“toLowerCase不会影响字符串str本身的值”。这是基于这里的文档 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/... - Cary Bondoc
什么是时间和空间的复杂性 toLowerCase() 功能? - Ramzan Chasygov
@RamzanChasygov它是O(n)并且比在JavaScript中重新实现它更快,除非你有一个由非常聪明的白痴编程的JavaScript引擎。 - wizzwizz4


使用其中之一 toLowerCase 要么 toLocaleLowerCase 的方法  目的。不同之处在于 toLocaleLowerCase 将考虑用户/主机的当前区域设置。根据§15.5.4.17 ECMAScript语言规范(ECMA-262)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 (而不是错误条件)。


390
2017-09-30 21:51



+1,这个答案应该得到比所接受的答案更多的投票,这些答案完全没有解释,我的意思是 - Frederik.L
关于的部分 String.prototype.toLowerCase.apply(null) 回国 null 似乎不正确。它扔了一个 TypeError 我尝试的例外。 - JohnnyHK
@JohnnyHK你是对的。这个位曾经在IE的早期版本中保持正确,它在最初发布答案的时候进行了测试。我已更新答案以反映您的反馈。谢谢。 - Atif Aziz


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

所以,你可以这样做:

"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();

24
2017-09-30 20:25





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ç”,反之亦然。


16
2017-12-04 22:54



Accept-Language 和 navigator.language 是两个完全独立的设置。 Accept-Language 反映了用户所选择的他们希望在网页中接收哪种语言的偏好(这种设置对于JS来说是不可访问的)。 navigator.language 仅反映Web浏览器的哪些本地化安装,通常不应用于任何内容。这两个值都与系统区域设置无关,系统区域设置决定了什么 toLocaleLowerCase() 会做;这是浏览器prefs范围之外的操作系统级别设置。 - bobince
我认为Accept-Language和navigator.language应该以某种方式相关。您可以通过浏览器的设置屏幕按顺序配置默认语言,但是您无法配置navigator.language应响应的内容。我认为应该有另一种形式的函数toLowerCase()获取一个locale参数。 - sanilunlu
是的,应该真的。不幸的是,JavaScript中与语言环境相关的功能很弱,指定不当且通常不可靠。 - bobince


<script type="text/javascript">
var yourstring = 'Your Name'
var lowercase = yourstring.toLowerCase();
document.write('original string:<b> ' + yourstring + '</b><br>');
document.write('converted sting <b>' + lowercase + '</b>');
</script>

试试

http://htmledit.squarefree.com/

11
2017-10-02 09:06





我注意到很多人都是 看着 对于 strtolower() 在JavaScript中。他们期望与其他语言具有相同的功能名称,这就是为什么这篇文章就在这里。

我建议使用 本地人 Javascript功能

"SomE StriNg".toLowerCase()

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

function strToLower (str) {
    return String(str).toLowerCase();
}

9
2017-09-17 06:51



什么是 + '' 对于? - UpTheCreek
使用 String(str) - Onur Yıldırım


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

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

 onChange: function(file, extension)
    {
      alert("extension.toLowerCase()=>" + extension.toLowerCase() + "<=");

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

alert("(typeof extension)=>" + (typeof extension) + "<=");;

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

var extension = String(extension);

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


6
2018-05-26 23:57





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

说明:这些方法用于覆盖从小写字母到大写字母的字符串或字母表,反之亦然。例如:“和”到“AND”。

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

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

结果:测试案例转换方法

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

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

结果:测试小写转换功能

说明:在上面的例子中,

toUpperCase() method converts any string to "UPPER" case letters.
toLowerCase() method converts any string to "lower" case letters.

6
2017-07-20 13:13