我想在我想要的语言环境中将字符串转换为 JavaScript 中的小写或大写。我认为像 toUpperCase()
和 toLocaleUpperCase()
这样的标准函数不能满足这个需求。 toLocale
函数不按应有的方式运行。
例如,在我的系统上的 Safari 4、Chrome 4 Beta、Firefox 3.5.x 中,它错误地转换了带有土耳其语字符的字符串。浏览器响应 navigator.language 为 "en-US"
, "tr"
, "en-US"
。但据我所知,无法在浏览器中获取用户的 Accept-Lang
设置。只有 Chrome 给我 "tr"
尽管我已经配置了首选的每个浏览器土耳其语言环境。我认为这些设置只影响 HTTP 标头,但我们无法通过 JavaScript 访问这些设置。
在 Mozilla 文档 中它说
字符串中的字符将转换为 …,同时尊重当前语言环境。对于大多数语言,这将返回与 …
我认为它对土耳其语有效,配置为 en 或 tr 没有区别。在土耳其中,它应该转换 "DİNÇ"
"dinç"
"DINÇ"
"dınç"
有没有满足这种需求的 JavaScript 库?我认为它不仅应该在用户的语言环境中正确转换,而且还应该支持通过语言环境参数进行转换。因为开发人员无法访问用户配置的首选语言。
原文由 sanilunlu 发布,翻译遵循 CC BY-SA 4.0 许可协议
几年后回来提供更多最新的解决方案。
不需要下面的黑客,
只需使用 String.toLocaleUpperCase() 和 String.toLocaleLowerCase()
现在所有现代浏览器都支持这一点。
[旧的,不要使用这个]
试试这些功能
我希望他们能为你工作。