gpt4 book ai didi

javascript - 小数点后 8 位小数的正则表达式

转载 作者:行者123 更新时间:2023-11-30 11:24:16 26 4
gpt4 key购买 nike

我在使用需要允许正数或负数以及最多 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}$

Click for Demo

解释:

  • ^ - 断言行的开始
  • [+-]? - 匹配 +-,可选
  • \d* - 匹配出现 0 次以上的数字。这代表小数部分前的数字。
  • \. - 匹配小数点 .
  • \d{1,8} - 匹配最少 1 位数字和最多 8 位数字
  • $ - 断言行尾

关于javascript - 小数点后 8 位小数的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48634302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com