개발공부/알고리즘
[Algorithm] 대문자 변환하기 (정규식 포함)
J-Plum
2023. 4. 21. 22:28
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<!-- 대문자로 변환하기 -->
<body>
<script>
let str = "ItisTimeToStudy";
function solution(str) {
let answer = "";
for (let word of str) {
if (word.charCodeAt() >= 97 && word.charCodeAt() <= 125) answer += word.toUpperCase();
else answer += word
}
return answer;
}
function solution2(str) {
let answer = "";
for (let word of str) {
if (/[a-z]/.test(word)) {
answer += word.toUpperCase();
} else {
answer += word;
}
}
return answer;
}
function solution3(str) {
let answer = "";
for (let word of str) {
// if (/[a-zA-Z].test(word)) {
if (/[a-z]/i.test(word)) {
answer += word.toUpperCase();
}
}
return answer;
}
console.log(solution(str));
console.log(solution2(str));
console.log(solution3(str));
</script>
</body>
</html>
solution2 는 정규식을 사용했습니다
/[a-z]/ 는 소문자를 찾으며 i를 붙이면 대소문자를 구분하지 않습니다
즉. /[a-z]/i , /[A-Z]/i , /[a-zA-Z]/ 모두 같습니다. 대소문자를 구분하지 않고 알바벳을 찾습니다.
solution2의 if문은 word가 앞의 정규식의 조건에 해당하는걸 포함하는지.
즉 a-z까지의 문자를 포함하는지를 true, false로 반환합니다.
소문자일때 toUpperCase() , 아니면(대문자일경우) else로 가서 answer에 더하기
하지만 solution3이 가장 좋은 것 같습니다
링크에 알고리즘에 사용한 정규식에 대한 설명이 있으며,
정규식은 추후 별도로 정리하겠습니다