我想检查一个值是否是一对有效的数字,有一个点并且点后面有零、一位或两位数字。
起初我尝试使用parseFloat()
这看起来没问题,因为我可以评估 NaN 的结果。但如果给出像 11aa.01 这样的值,它将返回 11 而不是 NaN。
之后我去了match()
看看正则表达式是否可以解决这个问题。我以为var mIsFloat = $('#Price').val().match('/\d+\.\d{0,2}/');
可以解决问题,但是当我 console.log()
我得到的结果null
。
我在这里忽略了一些明显的事情吗?
最佳答案
首先,您应该传递match
正则表达式,而不是字符串。
match(/\d+\.\d{0,2}/);
其次,它并未锚定到您要匹配的字符串的末尾,因此它会很高兴地说 "aa1.23bb"
匹配。
match(/^\d+\.\d{0,2}$/);
关于javascript - JS 中判断值是否有效的正则表达式返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20489689/