Welcome 微信登录

首页 / 脚本样式 / JavaScript / JavaScript更改字符串的大小写

JavaScript提供了两个方法,将字符串转换为全部大写或全部小写,从而可以将“hello”更改为“HELLO”,或者将“NOT”更改为“not”。你可能会问,为什么?将字符串中的字母转换为相同的大小写,这可以使得比较两个字符串变得更容易。例如,假设你创建了一个题程序,并且,一个问题是“Who was the first American to win the Tour De France?”你可能用类似下面的代码来检查参加答题者的答案:

var correctAnswer="Greg LeMond";var response=prompt("Who was the first American to win the Tour De8France?","");if(response==correctAnswer){//correct}else{//incorrect}
答案是Greg LeMond,但是,如果参加答题的人输入了Greg Lemond,结果会如何呢?条件看上去类似这样:"Greg Lemond"=="Greg LeMond"。由于JavaScript是区分大小写字母的,Lemond中的小写字母"m"不会匹配LeMond中的"M",因此,参加答题者可能会得到答错的结果。如果参加答题者按下了Caps键,并且输入了GREG LEMOND,也会得到同样的结果。
要解决这个难题,我们可以将两个字符串都转换为同样的大小写,然后再比较它们:

if(response.toUpperCase()==correctAnswer.toUpperCase()){//correct}else{//incorrect}
在这个例子中,条件语句将参加答题者的答案和正确的答案都转换为大写字母,因此,"Greg Lemond"变成了"GREG LEMOND",并且"Greg LeMond"变成了"GREG LEMOND"。
要获得全部小写的字符串,像下面这样使用toLowerCase()方法:

var answer="Greg LeMond";alert(answer.toLowerCase());//"greg lemond"
注意,这些方法都没有真正改变实际存储在变量中的字符串,它们只是以全部大写或全部小写的形式返回了该字符串。因此,在上面的例子中,即便提示出现以后,answer仍然包含"Greg LeMond"(它们返回某些其他的值)。
toLowerCase()和toUpperCase()是两个经典的方法,借鉴自java.lang.String中的同名方法。而toLocaleLowerCase()和toLocaleUpper()方法则是针对特定地区的实现。对有些地区来说,针对地区的方法与通用方法得到的结果相同,但少数语言会为Unicode大小写转换应用特殊的规则,这时候就必须要使用针对地区的方法来保证实现正确的转换。
以下是几个例子:

var sv="hello world";alert(sv.toLocaleUpperCase());//"HELLO WORLD"alert(sv.toUpperCase());//"HELLO WORLD"alert(sv.toLocaleLowerCase());//"hello world"alert(sv.toLowerCase());//“hello world”
以上代码用的toLocaleUpperCase()和toUpperCase()都返回了“HELLO WORLD”,就像调用了toLocaleLowerCase()和toLowerCase()都返回了“hello world”一样。一般来说,在不知道自己的代码将在那种语言环境下运行的情况下,还是使用针对地区额的方法更稳妥一些。
以上所述就是本文的全部内容了,希望大家能够喜欢。