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

问题描述 投票:2回答:1

我正在尝试的验证:

  • 正则表达式: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));    
}
javascript jquery regex
1个回答
4
投票

你的第一个和第二个似乎工作得很好,第三个可以通过以下正则表达式实现:

/(?!0)\d+\.\d+$/

它首先期待零(跳过它们),然后匹配任意数字后跟一个点和更多数字。如果你想要数字是可选的,你可以用'+'代替'*'。

编辑:

如果要允许整数,可以使用此正则表达式:

/(?!0)\d+(?:\.\d+)?$/

这使得点和后面的数字可选。

顺便说一句:你的jsfiddle没有帮助回答。

Aaditi:

要使用引号创建正则表达式,必须使用以下语法:

var regex = new RegExp('(?!0)\d+(?:\.\d+)?$');

Aadita:

我忘了提,你需要双重逃避反斜杠,它应该是:

var regex = new RegExp('(?!0)\\d+(?:\\.\\d+)?$');

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

© www.soinside.com 2019 - 2024. All rights reserved.