我想创建一个正则表达式,它接受小数点前的 0到14 位数(。)和小数点后的 0到6 位数。我该如何进一步采用以下模式?
<input type="text" pattern="\d+(\.\d{0,6})?" required/>
值类型:
答案 0 :(得分:1)
从字面上理解时
小数点前0到14位(。)和小数点后0到6位
(注意强调和)你可以使用
^\d{0,14}\.\d{0,6}$
但它与120
不匹配,所以显然小数点毕竟是可选的。将其更改为
^\d{0,14}(\.\d{0,6})?$
修复了 - 它还匹配1.
和.77
:)
问题是它还会匹配空字符串以及单个.
。这可以通过使用前瞻强制至少一个数字来修复:
^(?=.?\d)\d{0,14}(\.?\d{0,6})?$
前瞻中的可选小数点是.1
仍然有效。
答案 1 :(得分:0)