正規表現で数字とハイフンのどちらも入力されているかの書き方
解決したいこと
Angularのフォームを利用してバリデーションを行おうとしています。
先頭と末尾が数字で間にハイフンが入るという正規表現の書き方を知りたいです。
/^\d+(\-\d+)$/
上記で数字と数字の間にハイフンが入るということは満たせたのですが、
ハイフンが入力されていない場合はエラーになりません。
ハイフンが未入力時でもエラーとしたいです。
ご回答よろしくお願いいたします。
0 likes
Angularのフォームを利用してバリデーションを行おうとしています。
先頭と末尾が数字で間にハイフンが入るという正規表現の書き方を知りたいです。
/^\d+(\-\d+)$/
上記で数字と数字の間にハイフンが入るということは満たせたのですが、
ハイフンが入力されていない場合はエラーになりません。
ハイフンが未入力時でもエラーとしたいです。
ご回答よろしくお願いいたします。
その正規表現はハイフンが入っていない文字列にはマッチしないのでエラーになるはずですが。バリデーションの書き方は合っていますか?
% node
Welcome to Node.js v22.14.0.
Type ".help" for more information.
> /^\d+(\-\d+)$/.test('123')
false
> /^\d+(\-\d+)$/.test('123-456')
true
@eoao
Questioner
回答ありがとうございます。
なぜかエラーにならないです。
FormControlのValidators.patternを使用しているせいでしょうか?