Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么是不接受0-0-0的正则表达式?_Javascript_Regex - Fatal编程技术网

Javascript 什么是不接受0-0-0的正则表达式?

Javascript 什么是不接受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

我想写一个正则表达式,它可以接受以下几点

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+$)
    负前瞻来锚定它:

    ^(?!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中的正则表达式。顺便说一句,它是有效的。谢谢你,伙计。你们可以把它贴出来作为答案,这样我就可以把它标记为正确答案。