我正在尝试用这个要求构建正则表达式。
要求:
最大长度-5(如果是小数点,则为小数点)
十进制进动-最大2位数(如果是小数数字)。
数字-不需要是十进制数(不是强制性的)
代码:
<script>
function myFunction() {
var regexp = /^(?!\.?$)\d{0,5}(\.\d{0,2})?$/;
var num = 12345.52; // i will test here indiffernt ways
var n = regexp.test(num)
document.getElementById("demo").innerHTML = n; // returns true or false
}
</script>输出应该如下所示:
12345.52 ->它应该返回false,因为长度为8 inc点,但它返回true
123456.52 ->假。我知道d{0,5}是在十进制之前找的
12.45 ->真。完美1(长度5,进动2)
12345 ->真的。完美一(长度5,进动-非疯狂)
我希望构建一个regex表达式,以满足上述所有情况。
参考资料:单击此处
发布于 2014-10-08 13:21:26
您可以尝试下面的regex,它使用正前瞻断言。
^(?=.{1,5}$)\d+(?:\.\d{1,2})?$演示
解释:
^断言我们正处于起步阶段。(?=.{1,5}$)断言长度必须从1到5。\d+允许一个或多个数字。(?:\.\d{1,2})?可选小数点后的允许位数必须为一两个小数点。$断言我们在行的末尾。https://stackoverflow.com/questions/26257817
复制相似问题