UNPKG

feeles-ide

Version:

The hackable and serializable IDE to make learning material

36 lines (30 loc) 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = zenkakuToHankaku; var regExp = /[!-~”’、。ー]/; var userWasCanceled = false; function zenkakuToHankaku(cm, change) { if (userWasCanceled || change.origin !== '+input' && change.origin !== '*compose') return; // 全角の数字・記号が含まれているかどうか var hasZenkaku = regExp.test(change.text.join()); if (!hasZenkaku) return; // 半角に変換する var text = change.text.map(function (text) { return text.split('').map(function (char) { if (regExp.test(char)) { var hankaku = char.replace(/[!-~]/, function (s) { return String.fromCharCode(s.charCodeAt(0) - 0xfee0); }).replace(/”/, '"').replace(/’/, "'").replace(/、/, ',').replace(/。/, '.').replace(/ー/, '-'); // 置換するか聞く if (!userWasCanceled && confirm("\u5168\u89D2\u306E ".concat(char, " \u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F\u3002\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u3067\u306F\u3075\u3064\u3046\u534A\u89D2\u306E ").concat(hankaku, " \u3092\u4F7F\u3044\u307E\u3059\u3002 ").concat(hankaku, " \u306B\u3057\u307E\u3059\u304B\uFF1F"))) { alert('次からは、キーボードの【全角/半角】または【英数】キーを押して、半角入力にしておきましょう!'); return hankaku; } else { // キャンセルされたらもう聞かない userWasCanceled = true; } } return char; }).join(''); }); change.update(change.from, change.to, text); }