我正在尝试使用此要求构建正则表达式.
要求:
最大长度 - 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>
Run Code Online (Sandbox Code Playgroud)
输出应如下所示:
12345.52 - >它应该返回,false因为长度为8 inc点但它返回true
123456.52 - > false.我才知道d{0,5}是在十进制之前寻找的
12.45 - >是的.完美的(长度5,岁差2)
12345 - >真的.完美的(长度5,岁差 - 不是疯子)
我希望构建一个满足所有上述场景的正则表达式.
参考:点击这里
您可以尝试使用正向前导断言的以下正则表达式.
^(?=.{1,5}$)\d+(?:\.\d{1,2})?$
Run Code Online (Sandbox Code Playgroud)
说明:
^ 断言我们刚开始.(?=.{1,5}$) 断言长度必须从1到5.\d+ 允许一个或多个数字.(?:\.\d{1,2})? 小数点后允许数字的可选小数部分必须为1或2.$ 断言我们处于最后阶段.