Lv.1数字の文字列と英語の単語


🤖質問する


👍 2022年1月20日
<script>
function solution(s) {
    
    const wordSet = {
        "zero": 0,
        "one": 1,
        "two": 2,
        "three": 3,
        "four": 4,
        "five": 5,
        "six": 6,
        "seven": 7,
        "eight": 8,
        "nine": 9
    }
    
    let answer = s
        .replace(/zero/g, 0)
        .replace(/one/g, 1)
        .replace(/two/g, 2)
        .replace(/three/g, 3)
        .replace(/four/g, 4)
        .replace(/five/g, 5)
        .replace(/six/g, 6)
        .replace(/seven/g, 7)
        .replace(/eight/g, 8)
        .replace(/nine/g, 9)

    answer = Number(answer)
    
    return answer;
}
</script>
最初はオブジェクトのキー値を正規表現の式にすればいいと思ってwordSetを作成しましたが、自分の正規表現をどのように作成するか分からないので、最終的にはreplaceで解決します.調べてみると、下のように
RegExpオブジェクトのコンストラクション関数を呼び出し、直接指定すればよい.

解決策

<script>
for (let [key, value] of Object.entries(wordSet)) {
	let regex = new RegExp(key, "g");
    s = s.replace(regex, value);
}
</script>
新しく学んだものはここに整理されている。😁

参考文献

  • https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions