• line

kintoneのカスタマイズ。全角英数字を半角英数字に変換するコードの紹介。

kintone SI

kintoneのカスタマイズ。全角英数字を半角英数字に変換するコードの紹介。

kintoneの標準の機能では、全角の文字を自動的に半角に変換してくれるような機能はありません。
表記の揺らぎを防ぐため、全角英数文字が入力された際に自動的に半角英数文字に変換するコードをご紹介します。

コードの全体像。


(function(){
"use strict";

kintone.events.on(['app.record.create.change.半角英数','app.record.edit.change.半角英数'],function(event){
event.changes.field.value = event.changes.field.value.replace(/[A-Za-z0-9]/g,function(s){
return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);});

return event;
});
})();

まずコードの全体像をご紹介します。
処理の流れは、「半角英数」という文字列フィールドのchnageイベント発生時にフィールドの値を判別し、文字列オブジェクトのreplaceメソッドで半角化の処理を実行します。
では詳しくコードを見ていきましょう。

対象のフィールドのchangeイベントを記述する。


kintone.events.on(['app.record.create.change.半角英数','app.record.edit.change.半角英数'],function(event){


半角英数フィールドが変更されたときのイベント処理になります。
app.record.create.change.半角英数 ・・・ レコード新規作成画面で「半角英数」を変更した場合
app.record.edit.change.半角英数 ・・・ レコード編集画面で「半角英数」を変更した場合

replaceメソッドの処理を記述する。


event.changes.field.value = event.changes.field.value.replace(/[A-Za-z0-9]/g,function(s){
return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);});


event.changes.field.valueはイベントが発生したフィールドになります。
なのでこの場合は「半角英数」フィールドの値になります。
そこにreplaceメソッドで変換した文字列を代入します。replace(変換対象の文字,変換方法)という書式となります。

変換対象の文字はA-Za-z0-9と指定しており、大文字の全角アルファベット、小文字の全角アルファベット、全角の数字を示しています。この指定の仕方は正規表現と言います。

変換方法として、該当する文字の文字コードを0xFEE0分シフトするということを指定しています。全角文字と半角文字の文字コードが文字ごとに0xFEE0ずれていることを利用した処理になります。逆に半角英数字を全角にする場合は0xFEE0を足してあげれば全角文字に変換することができます。

replaceメソッドを駆使することで、半角全角以外にも様々な変換が可能です。いろいろ工夫してみてください。

kintoneを活用した業務の効率化はkintoneソリューションサービスをご活用ください。

ゴートップではkintoneを活用した業務の効率化のご相談を承っております。
現在の業務に課題を抱えている方は是非ゴートップにお問い合わせください。

詳しくは当社kintoneソリューションサービスのページをご覧ください。


お問い合わせ

  • line

お問い合わせ

お気軽にお電話ください。

0120-98-0016