管理人がみんなに伝えたい!!と思った知識や学びを気ままに書いています(^^)

【これで解決!】半角英数字のみ入力を許す方法

【これで解決!】半角英数字のみ入力を許す方法

本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。

本ブログでは新UI画面で内容をまとめています。

新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)

新UI画面の説明

まずはじめに

本記事はこんな人におすすめ!!
  • appsheetに入力するデータを半角英数字に制限したい人
本記事を読んで出来るようになること
  • Text関数を使ってValid ifの入力制限が出来る
  • 半角英数字だけでなく全角の設定も可能

今回の記事はValid if(入力制限)についてです。

基本的な設定については別記事ですでにまとめていますが、先日仕事で

半角英数字でデータを入力させるようにして欲しい

こんなお願いがやってきました。

めちゃくちゃ悩みましたが何とか出来たのでそれを記事にしてみました(^^)

最初に言っておきますが、かなり泥臭いやり方です笑

それでは勉強していきましょう!


使用した関数について

使用した関数について

今回の半角英数字の入力制限を実装するにあたり、使った関数は

  • len()関数
  • substitute()関数

この2つです。

まずはこの2つの関数の使い方を見てみましょう(^^)

len()関数の使い方

len(text)

括弧の中にテキスト(文字列なら数字でも可)を送り、その文字数を数える関数です

substitute()関数の使い方

substitute(templateold-textnew-text)

第一引数に文字列、第二引数に置き換えたい文字列、第三引数に置き換える文字列を指定します

参考記事

この2つの関数を使って構文を作ると面白いことが出来ます(^^)

例えば、入力値を半角数字の0のみ許す構文は

len(substitute([_this],”0″,””))=0

この構文で入力値は半角数字の0のみ受け付けるようになります。

では、入力値を半角数字の0と1のみ許す構文は

len(substitute(substitute([_this],”0″,””),”1″,””))=0

この構文で入力値は半角数字の0と1のみ受け付けるようになります。

もう何となくわかってきたと思いますが、解説しますね(^^)

まず大事な前提条件として

len(“”)

これは0を返します。

つまりlen()=0とした場合、括弧の中が空白だったら左辺=右辺となります。

このことを把握しつつ下図を見てみましょう(^^)

半角数字のみを許す構文の説明

len(substitute(substitute(substitute([_this],”0″,””),”1″,””),”2″,””))=0

この構文が内部で処理している内容は

1.半角数字の0がある場合 → 0の文字列を空白とみなします(この処理が行われた文字列を文字列Aとします)

2.文字列A半角数字の1が含まれる場合 → 1の文字列を空白とみなします(これを文字列Bとします)

3.文字列B半角数字の2が含まれる場合 → 2の文字列を空白とみなします(これを文字列Cとします)

4.文字列C空白の場合はlen()=0が成立するためOK!

こういう意味になります。

読者の皆さんは以下の構文をコピペしてお使いください

Word Pressのバグなのか不明ですが、以下の構文をそのままコピペするとエラーが出ることがあります。その場合は、『[_this],”0″,””)』の0の前後の ” を半角に置き換えてみてください。

半角数字のみを入力させたい時

len(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
[_this],”0″,””),
“1”,””),
“2”,””),
“3”,””),
“4”,””),
“5”,””),
“6”,””),
“7”,””),
“8”,””),
“9”,””)
)=0

全角数字のみを入力させたい時

len(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
[_this],”0”,””),
“1”,””),
“2”,””),
“3”,””),
“4”,””),
“5”,””),
“6”,””),
“7”,””),
“8”,””),
“9”,””)
)=0

半角英数字のみを入力させたい場合

len(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
[_this],”0″,””),
“1”,””),
“2”,””),
“3”,””),
“4”,””),
“5”,””),
“6”,””),
“7”,””),
“8”,””),
“9”,””),
“a”,””),
“b”,””),
“c”,””),
“d”,””),
“e”,””),
“f”,””),
“g”,””),
“h”,””),
“i”,””),
“j”,””),
“k”,””),
“l”,””),
“m”,””),
“n”,””),
“o”,””),
“p”,””),
“q”,””),
“r”,””),
“s”,””),
“t”,””),
“u”,””),
“v”,””),
“w”,””),
“x”,””),
“y”,””),
“z”,””)
)=0

半角英数字(大文字含む)のみを入力させたい場合

len(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
substitute(
[_this],”0″,””),
“1”,””),
“2”,””),
“3”,””),
“4”,””),
“5”,””),
“6”,””),
“7”,””),
“8”,””),
“9”,””),
“a”,””),
“b”,””),
“c”,””),
“d”,””),
“e”,””),
“f”,””),
“g”,””),
“h”,””),
“i”,””),
“j”,””),
“k”,””),
“l”,””),
“m”,””),
“n”,””),
“o”,””),
“p”,””),
“q”,””),
“r”,””),
“s”,””),
“t”,””),
“u”,””),
“v”,””),
“w”,””),
“x”,””),
“y”,””),
“z”,””),
“A”,””),
“B”,””),
“C”,””),
“D”,””),
“E”,””),
“F”,””),
“G”,””),
“H”,””),
“I”,””),
“J”,””),
“K”,””),
“L”,””),
“M”,””),
“N”,””),
“O”,””),
“P”,””),
“Q”,””),
“R”,””),
“S”,””),
“T”,””),
“U”,””),
“V”,””),
“W”,””),
“X”,””),
“Y”,””),
“Z”,””)
)=0

ちなみにこの構文は、英語の大文字や小文字、半角や全角を別の文字列として認識するのでご注意ください。

その場合は構文をコピペして必要な文字列を修正してお使いください(^^)


まとめ

以上、半角英数字のみを入力させる構文のご紹介でした。

いや、もっといい方法あるやろ!?と思われた方、あればコメント欄から教えてください。

私のレベルだとこれしか思いつきませんでした・・

記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。

わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!

勉強お疲れさまでした(^^)

1 COMMENT

k

記事内の関数をコピーすると半角→全角になってしまう不具合を修正しました。
また、ご要望のあった半角英数字(大文字含む)の条件式を追記しました(^^)

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA