用于验证字段的正则表达式

时间:2018-09-25 17:29:09

标签: 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(regex.test(getValue()));
}

function match() {
    alert(getValue().match(regex));    
}

1 个答案:

答案 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+)?$');

现在它应该可以直接在您的代码中工作。