Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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 正则表达式-是否有我';你做错了什么?_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式-是否有我';你做错了什么?

Javascript 正则表达式-是否有我';你做错了什么?,javascript,regex,Javascript,Regex,这是javascript,但实际上相同的正则表达式在PHP中也失败了,所以我认为它不是特定于语言的 我到底错过了什么?我认为你的非捕获块应该是例如(?:19 | 20)而不是(:19 | 20)正确;正则表达式实际上可以与?: ?当使用前缀时,表示您将对捕获进行一些操作。要么不捕获块(:),要么捕获前(=),要么捕获后( var r = new RegExp( "^(:19|20)?[0-9][0-9]" // optional 19/20 start follow

这是javascript,但实际上相同的正则表达式在PHP中也失败了,所以我认为它不是特定于语言的


我到底错过了什么?

我认为你的非捕获块应该是例如
(?:19 | 20)
而不是
(:19 | 20)
正确;正则表达式实际上可以与
?:

当使用前缀时,表示您将对捕获进行一些操作。要么不捕获块
(:)
,要么捕获前
(=)
,要么捕获后
(
var r = new RegExp(
    "^(:19|20)?[0-9][0-9]"            // optional 19/20 start followed by 2 numbers
    + "-"                             // a hyphen
    + "(:0?[1-9]|1[0-2])"             // optional 0 followed by 1-9, or 10, 11, 12
    + "-"                             // a hyphen
    + "(:3[01]|[12][0-9]|0?[1-9])$"   // you get the idea.
);
r.test("2008-07-01");                // == false