Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于验证字段的正则表达式_Javascript_Jquery_Regex - Fatal编程技术网

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中不起作用。你有什么建议吗?当然可以,只是确保在使用斜杠时不要引用正则表达式。有什么问题吗?它与数字匹配,因为它应该跳过零。