新規投稿
フォローする

文字列に半角数値のみの入力制限をするには

度々失礼致します。
文字列に頭ゼロ埋めになるようにコードを入力しています。
ここからさらに半角数字のみの入力制限をかけて、半角数字以外が入力された場合、
"半角数字で入力してください”というエラー警告が出るようにしたいです。

正規表現を使用するというところまではわかるのですが
どのようにすればよいのか教えていただけないでしょうか。
(RegExp、testあたりを試したのですがうまくいきませんでした)

現在文字列フィールドに使用しているのは以下です。
よろしくお願いいたします。

(function() {
"use strict";
kintone.events.on("app.record.create.change.文字列__1行_", function(event) {
varlength = 8; // 値を8桁でゼロ埋めする
// 下記のように設定したlength以下の場合書き換える、という風にしないと無限に書き換え処理が走ってしまうので注意
if(event.changes.field.value.length < length) {
event.changes.field.value = zeroPadding(event.changes.field.value, length);
}
returnevent;
});

functionzeroPadding(number, length){
return (Array(length).join('0') + number).slice(-length);
}
})();
0

2件のコメント

Avatar
岡崎 光輝

おはようございます。
先日の記事が削除されていましたので、
こちらでお答えしたいと思います。

今回、JavaScriptのtestメソッドを使用しました。
正規表現の条件に一致すればtrue、不一致でfalseを返します。

フィールドコードがtestになっておりますので、ご利用の際は適宜変更をお願いします。
変数など、一目で何が格納されているかわかるように宣言すると後から読み直す際にストレスフリーです(^v^)/

(function() {
"use strict";

function zeroPadding(number, length) {
return (new Array(length).join('0') + number).slice(-length);
}

kintone.events.on(["app.record.create.change.test", "app.record.edit.change.test"], function(event) {
var limitLength = 8; //ゼロ埋めの桁数
var field = event.changes.field;
var checkPattern = /^([0-9]{0,8})$/; //1ケタ~8ケタの半角数字であること(正規表現)

//1-8桁の数値ではない場合アラート後終了。return
if (checkPattern.test(field.value) === false) {
window.alert('8ケタ以下の半角数字で入力してください');
return;
}

//想定内の数値であるため、処理をしてイベント内容をreturn
field.value = zeroPadding(field.value, limitLength);

return event;
});
})();
岡崎 光輝により編集されました
0
Avatar
佐々木

今回も丁寧なご回答ありがとうございます。
無事、動作させることができました!!;;

タイトルと疑問点や内容が最終的に一致していなかったので
再投稿させていただくことにしましたが
結果、ご面倒をおかけしてしまいして大変失礼致しました。

変数や宣言の仕方など理解できてない部分があまりにも多いので
引き続きご教示いただいたコードやこちらのコミュニティにて
学ばせていただきたいと思います!

今後ともよろしくお願いいたします。
ありがとうございました!!

1
サインインしてコメントを残してください。