1. ホーム
  2. regex

[解決済み] この正規表現に負の小数点を含めるにはどうしたらよいですか?

2022-02-18 21:18:19

質問

この正規表現で負の数にもマッチさせるにはどうしたらいいですか? この正規表現は正の値では問題なく動作しますが、負の値(例:-10、-125.5など)も許容するようにしたいのです。

^[0-9]\d*(\.\d+)?$

ありがとうございます。

解決方法は?

冒頭にオプションのハイフンを追加するために -? ( ? 量詞 意味 一回またはゼロ回 ):

^-?[0-9]\d*(\.\d+)?$

この値でRubularで検証してみました。

10.00
-10.00

で、どちらも期待通りにマッチしました。

let r = new RegExp(/^-?[0-9]\d*(\.\d+)?$/);

//true
console.log(r.test('10'));
console.log(r.test('10.0'));
console.log(r.test('-10'));
console.log(r.test('-10.0'));
//false
console.log(r.test('--10'));
console.log(r.test('10-'));
console.log(r.test('1-0'));
console.log(r.test('10.-'));
console.log(r.test('10..0'));
console.log(r.test('10.0.1'));