JavaScript는 문자열을 모두 대문자 또는 모두 소문자로 변환하는 두 가지 방법을 제공하므로 "hello"를 "HELLO"로 변경하거나 "NOT"를 "not"으로 변경할 수 있습니다. 왜 그럴까요? 문자열의 문자를 동일한 대소문자로 변환하여 두 문자열을 더 쉽게 비교할 수 있습니다. 예를 들어, 퀴즈 프로그램을 만들고 "투르 드 프랑스에서 우승한 최초의 미국인은 누구입니까?"라는 질문을 한다고 가정하면 다음과 유사한 코드를 사용하여 참여 참가자의 답변을 확인할 수 있습니다.
var correctAnswer='Greg LeMond'; var response=prompt('Who was the first American to win the Tour De8 France?',''); if(response==correctAnswer){ //correct }else{ //incorrect }
정답은 그렉 르몽드인데, 질문을 받는 사람이 그렉 레몬드에 들어가면 어떻게 될까요? 조건은 다음과 같습니다: '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'
이러한 방법 중 어느 것도 변수에 실제로 저장된 문자열을 실제로 변경하지 않으며 문자열을 모두 대문자 또는 모두 소문자로 반환한다는 점에 유의하세요. 따라서 위의 예에서는 프롬프트가 표시된 후에도 응답에 여전히 'Greg LeMond'가 포함됩니다(다른 값을 반환함).
toLowerCase() 및 toUpperCase()는 java.lang.String의 동일한 이름의 메소드에서 빌린 두 가지 기본 메소드입니다. toLocaleLowerCase() 및 toLocaleUpper() 메서드는 특정 지역에 대한 구현입니다. 일부 지역의 경우 지역별 방법을 사용하면 범용 방법과 동일한 결과가 나오지만 일부 언어에서는 유니코드 대소문자 변환에 특수 규칙을 적용합니다. 이 경우 올바른 변환을 위해서는 지역별 방법을 사용해야 합니다.
다음은 몇 가지 예입니다.
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"가 반환됩니다. 일반적으로 코드가 어떤 언어 환경에서 실행될지 모르는 경우 지역별 접근 방식을 사용하는 것이 더 안전합니다.
위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.