前提
JavaScriptで正規表現を使ってバリデーションチェックを行おうとしています。
実現したいこと
[4桁以下の数字] または [空文字] ならば通る正規表現を作りたいのですが、
空文字を通す方法がわかりません。
教えていただきたいです。
試したこと
/^d{,4}$/ /^d{,4}?$/ /^d{,4}|\s$/
補足情報(FW/ツールのバージョンなど)
JavaScript ES6
4字ができてるなら空文字は普通に=='' で良いのでは。
正規表現は副作用とか気にする必要もあるのでなんでもかんでも頑張って放り込まなくても良いと思いますが、如何でしょうか
そうですね、、、最終手段ではそのように考えています。
つくりの話をすると、複数ある入力フィールドのうち、質問に上げたフィールドのみ必須入力ではないので、1つだけロジックで除くのは気持ち悪いなあ、イテレータで一括にやってしまいたいなあ、と思っています。
「4桁以下の数字」がたとえば「001」とかでもよいのかによります。
また「1e2」のように評価は数値ですが、文字列にすると数値以外がヒットする場合とか
100nのようなbigint系をどうするかなどきちんとした定義が必要です
なるほど、、、、そこまで考えられていませんでした。
「4桁以下の数字」と申しましたが、正しくは「4桁以下の数値文字」なので「"001"」も通す認識です。
「1e2」がヒットするのはなぜでしょうか?^$で頭とお尻を見ているからですか?16進数になるからですか?
(「1e2」の入力を試してみましたがはじかれました。)

回答1件
あなたの回答
tips
プレビュー