replaceVowels.js (8kyu 51)
Codewars 알고리즘 풀이
Problem
- Replace all vowel to exclamation mark in the sentence.
- 문장의 모든 모음을 느낌표(!)로 변경한다.
Solution 01
function replaceVowels(str) {
const vowels = 'aeiouAEIOU';
let result = '';
for (let i = 0; i < str.length; i++) {
if (vowels.indexOf(str[i]) === -1) {
result += str[i];
} else {
result += '!';
}
}
return result;
}
replaceVowels('aeiou'); // !!!!!
replaceVowels('AEIOU'); // !!!!!
replaceVowels('abcde'); // !bcd!
replaceVowels('apple'); // !ppl!
indexOf()
메소드주어진 값이 처음으로 나타나는 위치를 반환한다.
일치하는 값이 없으면 -1을 반환한다.
Solution 02
function replaceVowels(str) {
return str.replace(/[aeiouAEIOU]/g, '!');
}
replaceVowels('aeiou'); // !!!!!
replaceVowels('AEIOU'); // !!!!!
replaceVowels('abcde'); // !bcd!
replaceVowels('apple'); // !ppl!
정규표현식 (RegExp)
replace()
: 대응되는 문자열을 찾아 다른 문자열로 치환한다.
g
: 전역 검색
Solution 03
function replaceVowels(str) {
return str.replace(/[aeiou]/gi, '!');
}
replaceVowels('aeiou'); // !!!!!
replaceVowels('AEIOU'); // !!!!!
replaceVowels('abcde'); // !bcd!
replaceVowels('apple'); // !ppl!
정규표현식 (RegExp)
i
: 대소문자 구분 없는 검색