【问题标题】:Angular7 Validation Pattern to accept only integers and double valuesAngular7验证模式只接受整数和双精度值
【发布时间】:2019-07-20 11:14:27
【问题描述】:

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

我只想接受整数或双正数: 前任: 40000, 500.0000, 400.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 的值。 谁能帮我解决这个问题。

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

【问题讨论】:

  • 你能创建 stackblitz 吗?
  • 我设法解决了这个问题,谢谢

标签: regex angular angular7 angular-validation angular-validator


【解决方案1】:

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

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

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

【讨论】:

  • 抱歉,这不是我需要的。
  • @FurqanS.Mahmoud ,但你说:'我只想接受整数或双正数'。这是你的要求。
  • 对不起,我想我不是很清楚,是的,我需要那个,而且我只需要在点后有 4 个位置,以防数字加倍。这就是为什么我必须为此使用正则表达式。 min(0) 验证器是不够的。
【解决方案2】:

这对我有用:

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})?$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    相关资源
    最近更新 更多