消毒上层与小写

时间:2015-12-22 01:06:25

标签: javascript theory sanitization

在清理字符串时,是否有理由将字符转换为lowercase而不是uppercase

我已经在许多语言中看到了此惯例,但就我目前的环境而言,我们会说Rails和/或Javascript

2 个答案:

答案 0 :(得分:1)

据我所知没有具体原因,但大写和小写都不是Unicode世界的全部故事。

例如,德语字母ß完全等同于ss;它们都是小写的,拼写为ß的单词也可拼写为ss

相反,在土耳其语中,ı(无点i)与i(点缀i)不同,但除非您的语言环境是土耳其语,否则上标任何一个都会产生I(无点的ASCII I) )。这也改变了意义。你不想使用错误的;它们并不等同。

正因为如此,一些编程语言提供了更具体的"案例规范化"根据Unicode标准第3.13节中的案例折叠规则进行的转换;由于这个原因,Python 3.3引入了str.casefold。它与.lower()非常相似,但也可以将ß之类的内容标准化为ss,因为它们在逻辑上相同(如果您无法统一,则不会#&} 39; t想要处理两个仅在ßss不同的字符串,以区别对待。

如果您没有以您的语言提供案例折叠,那么将大写与小写归一化的区别主要是按照惯例。

答案 1 :(得分:0)

Javascript有toLowerCase()以及toUpperCase()。你可以使用任何一个!

我认为你的问题的答案实际上源于几十年前决定使用区分大小写并具有所有小写命令的unix系统。这转换为Apache中的区分大小写的URL,并且要兼容O / S,我们只是确保所有内容都是小写的。

我想所有大写都可以并且有时会被使用,但它也是令人讨厌的:)