金額の正規表現(カンマ)

2月 26, 2021

金額の正規表現の内容
・3桁ごとにカンマの付いた半角数値は許可される
・カンマのない、ただの半角数値も許可される。
・カンマの位置がおかしい場合は、吹き出しが出る。

金額の正規表現

結論としては、以下のとおりです。

/^0$|^[1-9]\d{0,2}(,\d{3})*$|^[0-9\ ]+$/

実際に金額を入力する際は、カンマを付けたり、付けなかったり、勝手にカンマがついたりします。このため、このような正規表現になりました。
この正規表現は、以下の2つの正規表現の論理和です。

①半角数値の正規表現

/^[0-9\ ]+$/

②3桁ごとのカンマ区切りの金額の正規表現

/^0$|^[1-9]\d{0,2}(,\d{3})*$/

ValidationEngineに利用する場合

ブラウザで金額をテキストボックスに入力する場合に、ValidationEngineというjQueryを利用すると便利です。ValidationEngineの使い方は他のサイトを参考にして下さい。ここで紹介していることは、ValidationEngineに金額のバリデーションを追加する際の備忘録です。
以下を参考にして、jquery.validationEngine-ja.jsに以下を追加or修正して下さい。

        // 元々ある半角数値をチェックする設定
        "onlyNumberSp": {
          "regex": /^[0-9\ ]+$/,
          //"regex": /^[0-9\ ]+$/,
          "alertText": "* 半角数字で入力してください"
        },

上を参考にして、下のように追加して、inputタグのclassにclass="validate[maxSize[10], custom[AmountOfMoney]]"というように指定すれば金額の入力ミスをチェックする機能が実装されます。

        // 以下を追加する  
        "AmountOfMoney": {
          "regex": /^0$|^[1-9]\d{0,2}(,\d{3})*$|^[0-9\ ]+$/,
          "alertText": "* 半角数字で金額を入力してください(カンマをつけるなら位置を正しく)"
        },

以上です。