Javascript 什么是不接受0-0-0的正则表达式?
我想写一个正则表达式,它可以接受以下几点 1-格式应为x-y-z 2-x、y和z应该是数字 3-x可以是任何数字 从20开始不能超过4-yJavascript 什么是不接受0-0-0的正则表达式?,javascript,regex,Javascript,Regex,我想写一个正则表达式,它可以接受以下几点 1-格式应为x-y-z 2-x、y和z应该是数字 3-x可以是任何数字 从20开始不能超过4-y z不能超过272 6-x、y、z不能同时为0 我写了一个正则表达式,它满足了前5个点。正则表达式是 ^([0-9]+)-([0-9]|1[0-9])-([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-6][0-9]|27[0-2])$ 但它也接受不应接受的0-0-0。有没有办法避免0-0-0?您可以在^之后的开始处添加一个(?!0+-0
^([0-9]+)-([0-9]|1[0-9])-([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-6][0-9]|27[0-2])$
但它也接受不应接受的0-0-0。有没有办法避免0-0-0?您可以在^
之后的开始处添加一个(?!0+-0+-0+$)
负前瞻来锚定它:
^(?!0+-0+-0+$)([0-9]+)-([0-9]|1[0-9])-([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-6][0-9]|27[0-2])$
见
如果整个字符串只包含0
s和-
s,则(?!0+-0+-0+-0+$)
匹配将失败
var re=/^(?!0+-0+-0+$)([0-9]+)-([0-9]|1[0-9])-([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-6][0-9]|27[0-2])$/;
var-strs=['1-19-44','0-0-0','0-0-6'];
用于(STR的var s){
document.body.innerHTML++=s+”:“+re.test++”
”;
}
您可以在^
之后的开始处添加一个(?!0+-0+-0+$)
负前瞻来锚定它:
^(?!0+-0+-0+$)([0-9]+)-([0-9]|1[0-9])-([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-6][0-9]|27[0-2])$
见
如果整个字符串只包含0
s和-
s,则(?!0+-0+-0+-0+$)
匹配将失败
var re=/^(?!0+-0+-0+$)([0-9]+)-([0-9]|1[0-9])-([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-6][0-9]|27[0-2])$/;
var-strs=['1-19-44','0-0-0','0-0-6'];
用于(STR的var s){
document.body.innerHTML++=s+”:“+re.test++”
”;
}
什么是正则表达式风格?JAVApython或者Bash?你说的regex风格是什么意思?如果你的regex风格支持lookaheads,请使用^(?!0+-0+-0+$)([0-9]+-([0-9]| 1[0-9])-([0-9]|[0-9][0-9][0-9]| 2[0-6][0-9]| 27[0-2])
你的环境支持的是一种regex风格。您在哪里使用javascript中的正则表达式。顺便说一句,它是有效的。谢谢你,伙计。你可以把它作为一个答案贴出来,这样我就可以把它标记为一个正确的答案。regex的味道是什么?JAVApython或者Bash?你说的regex风格是什么意思?如果你的regex风格支持lookaheads,请使用^(?!0+-0+-0+$)([0-9]+-([0-9]| 1[0-9])-([0-9]|[0-9][0-9][0-9]| 2[0-6][0-9]| 27[0-2])
你的环境支持的是一种regex风格。您在哪里使用javascript中的正则表达式。顺便说一句,它是有效的。谢谢你,伙计。你们可以把它贴出来作为答案,这样我就可以把它标记为正确答案。