使用regexp验证数字字段

时间:2014-02-05 10:09:25

标签: javascript regex

我正在尝试使用regExp验证输入。

输入应该有一个数字字段,逗号前不超过3位,逗号后不超过2位。

我试过这个正则表达式:[0-9] {1,3}([。|,] [0-9] {1,2})?

但它不起作用。值1234.567验证为ok,但不应该。

这里我用来试试的代码:

<html>
<head>
<meta charset="utf-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<script src="js/test.js"></script>
</head>
<body>

<input id="regExp1" type="text" value = "[0-9]{1,3}([\.|,][0-9]{1,2})?" />
<input type="button" value="->" onclick="applyRegExp(regExp1,test1)"> 
<input id="test1" type="text" />
<input type="button" onclick="TestRegExp(test1,test1Result)" value="test"> 
<div id="test1Result" ></div>

</body>
</html>

///.. test.js :
function applyRegExp(input1,input2){

    input2.pattern = input1.value;
}



    function TestRegExp( inputField,resultField){

        var regexp = new RegExp(inputField.pattern);
        var value = inputField.value;

        if (regexp.test(value)){
            resultField.innerHTML = inputField.name + " ok";
        }else
        {
            resultField.innerHTML = inputField.name + " not ok";
        }

    }

2 个答案:

答案 0 :(得分:1)

这可能就是你想要的

^\d{1,3}([.|,]\d{1,2})?$

更新我们只是检查字符串是否与从开头到结尾(^$

。发生的事情就是我们允许连续3个数字(任意),接受一个点或一个逗号,但至少有1个数字,最多2个数字。

答案 1 :(得分:1)

试试这个

^\d{1,3}([.|,]\d{1,2})?$

Regular expression visualization