JavaScriptで10の練習問題 #6
ちょっと間があいてしまったけど続きを。
テキストを入れると語尾が赤ちゃん言葉に
「語尾が」って言うのが難易度を一気に上げている。
ちょっと面倒なので、さ行を全部変換する感じで行ってみよう。
function BabyTalk() { /** * 'さ' : 'ちゃ', * 'す' : 'ちゅ', * 'せ' : 'ちぇ', * 'そ' : 'ちょ', * 'し' : 'ち' */ this.words = { '\u3055' : '\u3061\u3083', '\u3059' : '\u3061\u3085', '\u305b' : '\u3061\u3047', '\u305d' : '\u3061\u3087', '\u3057' : '\u3061' } } BabyTalk.prototype = { setWords : function (words) { this.words = words; }, baby : function (str) { for (var word in this.words) str = str.replace(eval('/'+ word +'/g'), this.words[word]); return str; }, adult : function (str) { for (var word in this.words) str = str.replace(eval('/'+ this.words[word] +'/g'), word); return str; } }
逆の変換で行けば 元の言葉に戻せるんじゃないかと思って adult を付けたけど、原文に ちゃ、ち、ちゅ、ちぇ、ちょ が含まれてるとお終いですね。
余談
育児で今回の赤ちゃん言葉(ちゃ、ち、ちゅ、ちぇ、ちょ)を使うのは、言葉の発育に良く無いので使わない方がいいですよ。