入力フォームで全角数字を半角数字へ変換方法


こちらは投稿時削除下さい。
以下は、初めて投稿する人のためのテンプレートです。
必要のない項目は、削除下さい。)

どういうものを作ろうとしているか

在庫管理システム

1.前提条件

DBの作り

  • アイテムテーブルを作る
  • ItemName(商品名) text
  • stock(個数) number

UI

  • InputFormsのInputを配置します
    これは、個数の入力を入れるFormになります
  • Inputのcontent formatをintegerにします
  • 登録ボタンの作成

ここでは、ItemName(商品名)のUIを作ることは割愛しています。

2.発生している問題

前提条件で作った Inputに全角の数字を入れる
登録ボタンの作成を押したときに DBのアイテムテーブルにstockの個数データとして入らないです。
半角だったらアイテムテーブルにstockのデータが入るので全角が問題だと認識があります。

4.実装したい機能

その全角の数字を変換しstockの個数データとして入れることは可能でしょうか?

5.スクリーンショット

UIイメージになります

6.試したこと

WorkflowでInputのfind & replaceを使用して変換した場合登録は、できたが数字、100が入ることもあれば10の場合もあるので find & replaceを使用してやるのは難しい認識です。

7.補足情報 (調べたURL/参考になりそうな事例)

こんにちは~

input に入力された全角数字を半角数字に変換したいとのことですね。
この場合は「正規表現」を使うのがよろしいかと思います。

詳しくはこちらの記事が参考になるかと思いますので、ご一読お願いします〜!
https://blog.nocodelab.jp/entry/regex

もし試してみて難しそうであればまたご連絡ください〜

@Turtle01 さま
ご連絡ありがとうございます。
正規表現を使うのは何となくわかったのですが
置き換えたいパターンと置き換えたい単語が必要だと思いますが
自由入力の場合置き換えたいパターンは、無限大にあると思っていますがそれはどういった対応をすれば良いでしょうか?

今回私のパターンですと
全角の「100」を「100」にしたい「1」「1」にしたいということですので100パターンを用意するという形をとらなければならないということでしょうか?

ご返答よろしくお願いいたします。

一つのアイデアですが、全角文字を入力させないという方法はどうでしょうか。

正規表現を使い、input valueが全角文字であれば登録をさせず、エラーを返すことでユーザーは半角文字で入力しないといけなくなります。

ボタンを非活性にしてしまうのもいいと思います。

「いいね!」 1

@john03tgck01a さま
ありがとうございます。

input valueが全角文字であれば登録をさせず、エラーを返す

具体的には、どのような手順で実現できそうでしょうか?

  1. Workflowを組んだら良いのでしょうか?
  2. Buttonのconditionでregexを組んで ボタンを非活性にすればよろしいでしょうか?

2番については、皆目見当がついていません。

@mizutama12120329
WorkFlowは組まずに、input form のConditionalとButtonのConditionalに設定します。
正規表現の使い方は @Turtle01 さんの共有してくれているページがわかりやすいと思います。

inputのConditional

ButtonのConditional

動きはこんな感じです。

「いいね!」 1

john03tgck01a さま
丁寧ない解説ありがとうございます。

こちらの件は、WorkFlowは組まずに、input form のConditionalとButtonのConditionalに設定するようにします。

回答ありがとうございました。

「いいね!」 1