JavaScript:与文化无关的不区分大小写的字符串比较

Sma*_*ker 10 javascript culture string-comparison

如果之前已经提出过这个问题,请指出相关问题.

tl; dr:如何根据英国规则忽略套管,比较JavaScript中的两个字符串?

我的代码分析和比较来自两个不同来源的数据,每个来源对关键字是大写还是小写都有不同的看法,这意味着需要进行不区分大小写的比较.但是,如果在其他文化中使用(例如土耳其及其与字母I的臭名昭着的问题),我不希望系统中断.

JavaScript是否有任何方法可以进行与文化无关(读取:英语)不区分大小写的字符串比较?

Ber*_*rgi 11

如果在其他文化中使用(例如土耳其及其字母I中臭名昭着的问题),如何比较JavaScript中的两个字符串而不会破坏?JavaScript是否有任何方法可以进行与文化无关的不区分大小写的字符串比较?

是的,只需使用标准.toLowerCase方法这是不会受到影响的区域设置.a.toLowerCase() == b.toLowerCase()很好.该规范甚至要求:

必须根据Unicode字符数据库中的大小写映射派生结果

无论设置如何,这在所有系统中都是一致的.


为了尊重当前的语言环境,您可以.toLocaleLowerCase明确使用.MDN声明:

在大多数情况下,这将产生与toLowerCase()相同的结果,但对于某些语言环境(例如土耳其语),其案例映射不遵循Unicode中的默认大小写映射,可能会有不同的结果.

但是,依赖于语言环境看起来效果不佳 ......