我正在尝试的验证:
编辑:
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)\d+\.\d+$/
它首先期待零(跳过它们),然后匹配任意数字后跟一个点和更多数字。如果你想要数字是可选的,你可以用'+
'代替'*
'。
编辑:
如果要允许整数,可以使用此正则表达式:
/(?!0)\d+(?:\.\d+)?$/
这使得点和后面的数字可选。
顺便说一句:你的jsfiddle没有帮助回答。
Aaditi:
要使用引号创建正则表达式,必须使用以下语法:
var regex = new RegExp('(?!0)\d+(?:\.\d+)?$');
Aadita:
我忘了提,你需要双重逃避反斜杠,它应该是:
var regex = new RegExp('(?!0)\\d+(?:\\.\\d+)?$');
现在它应该直接在您的代码中工作。