Kintoneをはじめ、様々な管理システムにおいて全角文字を半角文字に置き換えたいシーンは少なくないと思います。
表記ゆれ防止プラグイン等で入力制限を行い、そもそも全角文字を入力不可にすることも可能ですが、既に入力されている全角文字を半角文字に置き換えたい場合には、JavaScriptで実装すると効率的です。
<サンプルコードの仕様>
・コード内の"対象フィールドコード"の箇所を、実際の対象フィールドコードに差し替えてください。
・必要に応じてtoHalfWidthの変換内容を調整
サンプルコードを環境に合わせてご変更いただければ、かなり便利なスクリプトになるかと思いますので、ご自由にお使いください!
※ご質問にはお答えできませんので予めご承知おきくださいませ。
※kintoneベースのサンプルコードではありますが、javaScriptなのでメイン関数部分は様々なシステムに転用可能です。
コード
(function () {
"use strict";
function toHalfWidth(str) {
if (!str) return "";
return str
.replace(/[A-Za-z0-9]/g, function (s) {
return String.fromCharCode(s.charCodeAt(0) - 0xfee0);
})
.replace(/[-−]/g, "-")
.replace(/[ ]/g, " ")
.replace(/[!]/g, "!")
.replace(/[?]/g, "?")
.replace(/[(]/g, "(")
.replace(/[)]/g, ")")
.replace(/[[]/g, "[")
.replace(/[]]/g, "]")
.replace(/[{]/g, "{")
.replace(/[}]/g, "}");
}
// レコード保存時
kintone.events.on(["app.record.create.submit", "app.record.edit.submit"], function (event) {
const record = event.record;
const addressValue = record["対象フィールドコード"].value;
record["対象フィールドコード"].value = toHalfWidth(addressValue);
return event;
});
})();