js实现字符串大小写转换的多种方法
Js提供了两个方法,将字符串转换为全部大写或全部小写,从而可以将“hello”更改为“HELLO”,或者将“NOT”更改为“not”。
将字符串中的字母转换为相同的大小写,这可以使得比较两个字符串变得更容易。
例如,假设你创建了一个题程序,并且,一个问题是“Who was the first American to win the Tour De France?”
例子,检查参加答题者的答案:
答案是Greg LeMond,但是,如果参加答题的人输入了Greg Lemond,结果会如何呢?条件看上去类似这样:'Greg Lemond'=='Greg LeMond'。由于javascript是区分大小写字母的,Lemond中的小写字母'm'不会匹配LeMond中的'M',因此,参加答题者可能会得到答错的结果。
如果参加答题者按下了Caps键,并且输入了GREG LEMOND,也会得到同样的结果。
要解决这个难题,可以将两个字符串都转换为同样的大小写,然后再比较它们:
在这个例子中,条件语句将参加答题者的答案和正确的答案都转换为大写字母。
因此,'Greg Lemond'变成了'GREG LEMOND',并且'Greg LeMond'变成了'GREG LEMOND'。
要获得全部小写的字符串,像下面这样使用toLowerCase()方法:
注意,这些方法都没有真正改变实际存储在变量中的字符串,它们只是以全部大写或全部小写的形式返回了该字符串。
因此,以上例子中,即便提示出现以后,answer仍然包含'Greg LeMond'(它们返回某些其他的值)。
toLowerCase()和toUpperCase()是两个经典的方法,借鉴自java.lang.String中的同名方法。
而toLocaleLowerCase()和toLocaleUpper()方法则是针对特定地区的实现。
对有些地区来说,针对地区的方法与通用方法得到的结果相同,但少数语言会为Unicode大小写转换应用特殊的规则,这时就必须要使用针对地区的方法来保证实现正确的转换。
几个例子:
以上代码使用toLocaleUpperCase()和toUpperCase()均返回“HELLO WORLD”,就像调用了toLocaleLowerCase()和toLowerCase()都返回了“hello world”一样。
在不知道代码将在那种语言环境下运行的情况下,还是使用针对地区额的方法更稳妥一些。