1

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

我只想接受整数或双正数:例如: 40000, 500.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.0000或的值400.1234。任何人都可以帮我解决这个问题。

更新 我也想限制点之后的位置数。

4

2 回答 2

2

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

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

amount: [{ value: entry.amount, disabled: false }, [Validators.required, Validators.min(0)]],
于 2019-07-20T11:51:09.903 回答
1

这对我有用:

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})?$
于 2019-07-20T12:19:34.833 回答