Javascript JS regex只允许100的增量
我想做的是只允许3或4位数字的增量为100 我知道如何做到这一点,但我认为有效的是没有实际工作,因为我没有得到匹配测试时。我想我现在明白为什么了,但我现在有点困惑,不知该怎么做才能实现我的目标 所以我想做的是只允许在输入中增加100,例如Javascript JS regex只允许100的增量,javascript,regex,Javascript,Regex,我想做的是只允许3或4位数字的增量为100 我知道如何做到这一点,但我认为有效的是没有实际工作,因为我没有得到匹配测试时。我想我现在明白为什么了,但我现在有点困惑,不知该怎么做才能实现我的目标 所以我想做的是只允许在输入中增加100,例如3700将有效,但3723将无效 我想到的是:^[0-9]{1,2}[0]{2}$。任何帮助都将不胜感激。这一个应该符合您的需要:^[1-9][0-9]?00$ 关于regex101 3100 // match 320 3320 100 // match 230
3700
将有效,但3723
将无效
我想到的是:
^[0-9]{1,2}[0]{2}$
。任何帮助都将不胜感激。这一个应该符合您的需要:^[1-9][0-9]?00$
关于regex101
3100 // match
320
3320
100 // match
230
500 // match
5000 // match
1245
000
0000
50002
50000
12000
这个应该符合您的需要:
^[1-9][0-9]-00$
关于regex101
3100 // match
320
3320
100 // match
230
500 // match
5000 // match
1245
000
0000
50002
50000
12000
为了简化,您需要(按顺序)匹配:
[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$/;
功能测试(e){
res.textContent=exp.test(inp.value)?“有效。”:“无效。”;
}
btn.addEventListener(“点击”,测试);
输入添加列表器(“变更”,测试)代码>
提交
为了简化,您需要(按顺序)匹配:
一个非零数字[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$/;
功能测试(e){
res.textContent=exp.test(inp.value)?“有效。”:“无效。”;
}
btn.addEventListener(“点击”,测试);
输入添加列表器(“变更”,测试)代码>
提交
所以您的号码必须是\000
或\000
。所以
或简单地数字mod 100==0
:
var input=prompt('entnumber');
if(input.match(/[^\d]/)| | input%100!=0){
警报(“输入错误”);
}否则{
警报(“正确输入”);
}
所以您的号码必须是#000
或#000
。所以
或简单地数字mod 100==0
:
var input=prompt('entnumber');
if(input.match(/[^\d]/)| | input%100!=0){
警报(“输入错误”);
}否则{
警报(“正确输入”);
}
那么您的正则表达式到底有什么问题?当它的行为与您期望的不一样时,会发生什么情况?我可以想象一些情况,但猜测并不是它应该如何工作的——如果你想得到帮助,你需要把你的问题弄清楚,并且可以重现。那么你的正则表达式到底出了什么问题?当它的行为与您期望的不一样时,会发生什么情况?我可以想象一些情况,但猜测并不是它应该如何工作的——如果你想得到帮助,你需要把你的问题弄清楚,并且可以重现。我想这是因为它将匹配0000
它匹配一个超过4位的数字,这是错误的。@MarcoBonelli修复了!我没有看到最大4位数的要求;)它匹配的12345678923456789000
不再匹配了^LoL!我猜这是因为它将匹配0000
它匹配一个超过4位的数字,这是错误的。@MarcoBonelli修复了!我没有看到最大4位数的要求;)它匹配的12345678923456789000
不再匹配了^LoL<代码>\d+
将匹配第一个数字后的一个或多个数字。OP表示总位数可以是3或4。\d+
将匹配第一个数字后的一个或多个数字。OP说总位数可以是3或4。@DCdaz这是因为如果要在更多行上测试多行(m
)修饰符,需要将行视为独立的输入字符串。如果不指定它,正则表达式中的$
标记将使其失败,因为输入一次全部求值。看一看,谢谢,伙计,把这个当礼物answer@DCdaz这是因为如果要在更多行上测试多行(m
)修饰符,需要指定多行(m
)修饰符,以使行被视为分离的输入字符串。如果不指定它,正则表达式中的$
标记将使其失败,因为输入一次全部求值。看一看,谢谢,伙计,把这个作为答案