Javascript 用于验证字段的正则表达式
我正在尝试的验证:Javascript 用于验证字段的正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我正在尝试的验证: 正则表达式:9999.99且无空格(0009.99)。它应转换为9.99 编辑: var regex = '(?!0)\d+(?:\.\d+)?$'; function getValue() { // passing value 0009.99 and 0009.00 and 100 return document.getElementById("myinput").value; } function test() { alert(rege
- 正则表达式:9999.99且无空格(0009.99)。它应转换为9.99
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+)?$/
这使得点和后面的数字是可选的
顺便说一句:你的JSFIDLE对回答问题没有帮助
Edit2:
要使用引号创建正则表达式,必须使用以下语法:
var regex = new RegExp('(?!0)\d+(?:\.\d+)?$');
Edit3:
我忘了提到,你需要两次逃逸反斜杠,应该是:
var regex = new RegExp('(?!0)\\d+(?:\\.\\d+)?$');
现在,它应该直接在代码中工作。您的第一个和第二个似乎工作得很好,第三个可以通过以下正则表达式实现:
/(?!0)\d+\.\d+$/
它首先查找零(跳过它们),然后匹配任意数量的数字,后跟一个点和更多的数字。如果希望数字是可选的,可以将加号“+
”替换为星形“*
”
编辑:
如果要允许整数,可以使用以下正则表达式:
/(?!0)\d+(?:\.\d+)?$/
这使得点和后面的数字是可选的
顺便说一句:你的JSFIDLE对回答问题没有帮助
Edit2:
要使用引号创建正则表达式,必须使用以下语法:
var regex = new RegExp('(?!0)\d+(?:\.\d+)?$');
Edit3:
我忘了提到,你需要两次逃逸反斜杠,应该是:
var regex = new RegExp('(?!0)\\d+(?:\\.\\d+)?$');
现在它应该可以直接在您的代码中工作。-它不工作!我只想添加“12”price.that正则表达式在angular/javascript中不起作用。你有什么建议吗?当然可以,只是确保在使用斜杠时不引用正则表达式。有什么问题吗?它与数字匹配,因为它应该跳过零。-它不起作用!我只想添加“12”price.that正则表达式在angular/javascript中不起作用。你有什么建议吗?当然可以,只是确保在使用斜杠时不要引用正则表达式。有什么问题吗?它与数字匹配,因为它应该跳过零。