Angular7 验证模式只接受整数和双精度值

Angular7 Validation Pattern to accept only integers and double values

我已经在这上面浪费了很多时间:(.

我只想接受整数或双正数: 前任: 40000500.0000400.1234 我设法为整数做到了这一点:

// somewhere at the code 
export const NUMERIC_PATTREN = '^-?[0-9]\d*(\.\d{1,2})?$';

// component code:
  amount: [{ value: entry.amount, disabled: false }, [Validators.required,Validators.pattern(NUMERIC_PATTREN )]],


但是,输入不接受 500.0000400.1234 格式的值。 谁能帮我解决这个问题。

更新 我也想限制点后的名额

如果您想在点之后或之前接受无限位的整数或双精度值,这将有所帮助:

https://stackblitz.com/edit/angular-g75hxt

amount: [{ value: entry.amount, disabled: false }, [Validators.required, Validators.min(0)]],

这对我有用:

export const NUMERIC_PATTREN = '^-?[0-9]\d*(\.\d{1,4})?$';

这将接受整数或双数,点后最多有 4 位。

如果要增加或减少点后的位,需要玩4,例如:

export const NUMERIC_PATTREN = '^-?[0-9]\d*(\.\d{1,3})?$'; //accepts only 3 places after the point

如果你想在你需要使用的点之后无限的地方:

export const NUMERIC_PATTREN = '^-?[0-9]\d*(\.\d*)?$'; //accepts endless places 

如果您不希望用户在左侧输入零,那么您需要从 1 开始域:

^-?[1-9]\d*(\.\d{1,4})?$