##お題
HTMLマークアップにおいて頻繁に用いられると思われる文字(下記)をHTML Entities(文字実体参照)へ変換する。
文字 | 文字実体参照 | 説明 |
---|---|---|
< | < | 小なり記号(半角) |
> | > | 大なり記号(半角) |
& | & | アンパサンド(半角) |
" | " | 二重引用符(半角) |
' | ' | 引用符(半角) |
function convertHTML(str) {
htmlEntities={
'&':'&',
'<':'<',
'>':'>',
'\"':'"',
'\'':"'"
};
//write your code
}
convertHTML("Dolce & Gabbana");//Dolce & Gabbana
##出力結果 例
convertHTML('Stuff in "quotation marks"') // Stuff in "quotation marks"
convertHTML("Shindler's List") // Shindler's List
convertHTML("<>") // <>
convertHTML("abc") // abc
##使ったもの
split()
map()
join()
##考えかた
・変換する文字と文字実体参照をオブジェクトで用意する。
・split()で分割した引数をmap()で個別に変換する。
割り当てた文字に該当するものがあれば変換し、なければそのまま返す。
・さいごにjoin()で一緒にしておわり
##コード
function convertHTML(str) {
htmlEntities={
'&':'&',
'<':'<',
'>':'>',
'\"':'"',
'\'':"'"
};
return str.split('').map(function(entity){
return htmlEntities[entity] || entity;
}).join('');
}
##正規表現を使ったコード
function convertHTML(str) {
str = str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/'/g,"'");
return str;
}
###他にもコードが浮かんだ方、コメントおまちしております。