我想要做的是只允许使用3位或4位的数字增加100。
我知道如何在某一点上做到这一点,但我认为可行的并不是真的有效,因为我在测试时没有得到任何匹配。我想我现在明白了为什么,但我现在有点困惑,为实现我的目标该怎么做。
所以我想要做的只是在输入中允许增量为100,例如3700
有效但3723
不会。
我想出的是:^[0-9]{1,2}[0]{2}$
。任何帮助将不胜感激。
答案 0 :(得分:3)
为简单起见,您需要匹配(按顺序):
[1-9]
。\d?
。00
(或0{2}
,视情况而定)。你走了:
^[1-9]\d?00$
另外,这可能不是你的情况,因为你说要匹配三位或四位数字,但如果你还想匹配0
(零):
^(0|[1-9]\d?00)$
测试代码(零排除)
var inp = document.getElementById('inp'),
res = document.getElementById('res'),
btn = document.getElementById('btn'),
exp = /^[1-9]\d?00$/;
function test(e) {
res.textContent = exp.test(inp.value) ? "Valid." : "Invalid.";
}
btn.addEventListener('click', test);
inp.addEventListener('change', test);

<input id="inp"> <button id="btn">Submit</button>
<p id="res"></p>
&#13;
答案 1 :(得分:1)
这个符合您的需求:^[1-9][0-9]?00$
3100 // match
320
3320
100 // match
230
500 // match
5000 // match
1245
000
0000
50002
50000
12000
答案 2 :(得分:1)
因此,您的号码必须为#000
或#..#000
。所以/^([1-9]00|[1-9]\d+00)$/
或只需number mod 100 == 0
:
var input = prompt('Enter number');
if (input.match(/[^\d]/) || input % 100 != 0) {
alert('Wrong input.');
} else {
alert('Correct input');
}
&#13;