我正在尝试使用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";
}
}
答案 0 :(得分:1)
这可能就是你想要的
^\d{1,3}([.|,]\d{1,2})?$
更新我们只是检查字符串是否与从开头到结尾(^
和$
)
。发生的事情就是我们允许连续3个数字(任意),接受一个点或一个逗号,但至少有1个数字,最多2个数字。
答案 1 :(得分:1)
试试这个
^\d{1,3}([.|,]\d{1,2})?$