我正在尝试的验证:
编辑:
var regex = '(?!0)\d+(?:\.\d+)?$';
function getValue() {
// passing value 0009.99 and 0009.00 and 100
return document.getElementById("myinput").value;
}
function test() {
alert(regex.test(getValue()));
}
function match() {
alert(getValue().match(regex));
}
答案 0 :(得分:4)
您的第一个和第二个似乎工作正常,第三个可以通过以下正则表达式实现:
/(?!0)\d+\.\d+$/
它首先期待零(跳过它们),然后匹配任意数量的数字,后跟一个点和更多数字。如果希望数字是可选的,则可以用星号“ +
”代替加号“ *
”。
修改:
如果要允许整数,则可以使用此正则表达式:
/(?!0)\d+(?:\.\d+)?$/
这使得后面的点和数字是可选的。
顺便说一句:您的jsfiddle不利于回答。
Edit2 :
要使用引号创建正则表达式,必须使用以下语法:
var regex = new RegExp('(?!0)\d+(?:\.\d+)?$');
Edit3 :
我忘了提一下,您需要加倍转义反斜杠,应该是:
var regex = new RegExp('(?!0)\\d+(?:\\.\\d+)?$');
现在它应该可以直接在您的代码中工作。