新規投稿
フォローする

文字数カウントとエラー表示

javascript初心者です。
キントーン上に、文字数カウントの機能を設けました。
過去の記事を参考にしました。
記事名「フィールドの文字数をカウントしてみよう!」

文字数カウントは出来るのですが、さらに(全角)20文字を超える場合
レコードの保存前にエラー表示を出したいです。

現在の設定
「detail_1」に入力された文字数を「count1」に表示しています。

kintone.events.on(['app.record.create.submit','app.record.edit.submit','app.record.index.edit.submit'], function (event) {
// 本文に入力された文字数を取得
var rec = event.record;
var st = rec['detail_1']['value']
//空白文字を削除
var st2 = st.replace(/\s+/g, "");
//文字数フィールドに文字数を代入
rec['count1']['value'] = st2.length;

    return event;

});

ご教示いただければ幸いです。

-1

2件のコメント

Avatar
瀧ヶ平

今坂真理子さん
cstapの瀧ヶ平です。

全角文字数を判定したいのであれば、文字列中の半角文字をreplaceメソッドで正規表現を用いて削除すればよいかと思います。
以下のようなコードで実装できるかと思います

kintone.events.on(['app.record.create.submit','app.record.edit.submit','app.record.index.edit.submit'], function (event) {
  // 本文に入力された文字数を取得
  var rec = event.record;
  var st = rec['detail_1']['value']
  //空白文字を削除
  var st2 = st.replace(/\s+/g, "");
  var st3 = st2.replace(/[\x00-\x7e]/g, "");
  //文字数フィールドに文字数を代入
  rec['count1']['value'] = st2.length;
  if(st3.length >= 20) event.error = "Error";
  return event;

});
1
Avatar
今坂真理子

cstapの瀧ヶ平様
ご回答ありがとうございます。
無事目的の処理が出来ました。

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