【发布时间】:2018-07-16 00:02:28
【问题描述】:
我在使用需要允许正数或负数以及最多 8 位小数的十进制正则表达式时遇到问题。
这就是我所拥有的。
^-?(?:(?:0|[1-9][0-9]*)(?:\.[0-9]{1,9})?|\.[0-9]{1,9})$
在大多数情况下,这是可行的,但它不能验证.00000001,我不知道为什么。它似乎不适用于我连续有超过 6 个零的任何小数。
export class AmountValidateDirective implements Validator {
validate(c: FormControl): any {
let amount = c.value;
const isValid = /^-?(?:(?:0|[1-9][0-9]*)(?:\.[0-9]{1,9})?|\.[0-9]{1,9})$/.test(amount);
const message = {
'amountValidate': {
'message': 'Must be Decimal with less than 8 digits'
}
};
return isValid ? null : message;
}
}
【问题讨论】:
-
你为什么不简单地使用
^[+-]?\d*\.\d{1,8}$?
标签: javascript regex angular