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

时间:2019-07-20 11:14:27

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

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

我只接受整数或双正数: 例如: 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的值。 有人可以帮我解决这个问题吗?

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

2 个答案:

答案 0 :(得分:1)

如果您要接受整数或双精度数,且该整数在该点之后或之前没有限制,则可以:

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

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

答案 1 :(得分:0)

这对我有用:

class SyntheticMethodDemo {
    class NestedClass {
        private String nestedField;
    }

    private final NestedClass nested = new NestedClass();

    public String getNestedField() {
        return nested.nestedField;
    }

    public void setNestedField(String nestedField) {
        nested.nestedField = nestedField;
    }
}

这将接受一个整数或一个双精度点,该点后面最多4个位。

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

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

如果要在该点之后有无限的地方,则需要使用:

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

如果您不希望用户在左侧输入零,则需要从1开始启动域。

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