GASで数値文字参照を読めるようにする練習
とある場所で「とある配送業者の配送状況を追跡番号から取得してgoogleシートに表示する的なシステム」の公開依頼が予算1,000円~3,000円で発注されてて、提案してる人がいて「すげーな」と思いました。
自分ではその値段で作る気はしないものの気になって調べて、がんばって取得した配送状況が
配達完了
的な数値文字参照。
特殊な訓練を受けていない自分には読めないため、GASでデコードできるようにしてみました。
function test(){ let str = '配達完了'; console.log(numRefToString(str)); //配達完了 } //数値文字参照を通常文字列に function numRefToString(str){ let re = str.match(/&#[0-9a-f]+;/g); let len = re.length; let result = ''; for (let i = 0; i < len; i++) { console.log(re[i]); let tmp = re[i].replace('&#', '').replace(';',''); tmp = String.fromCharCode(tmp); result += tmp; } return result; }
説明
正規表現でマッチしたものを全て配列にいれて、数字だけにして、あとは「String.fromCharCode」にお任せというだけのものです。
ダメなケースがあったらごめんなさい。