Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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
与config.*.json匹配的JavaScript正则表达式是什么?_Javascript_Regex - Fatal编程技术网

与config.*.json匹配的JavaScript正则表达式是什么?

与config.*.json匹配的JavaScript正则表达式是什么?,javascript,regex,Javascript,Regex,我想匹配config.json和config.staging.json和config.anything.json 到目前为止,我有configFile.match/config\.(.*)\.json/I您要求有两个点,但在config.json中,只有一个点。您可以将非捕获组用于可选的第二位: /config(?:\.(.+))?\.json/i 我假设您希望捕获组在那里捕获暂存或任何东西 您可能还需要锚定,因此它与fooconfig.jsonasdlfja不匹配: /^config(?:\

我想匹配
config.json
config.staging.json
config.anything.json


到目前为止,我有
configFile.match/config\.(.*)\.json/I

您要求有两个点,但在
config.json
中,只有一个点。您可以将非捕获组用于可选的第二位:

/config(?:\.(.+))?\.json/i
我假设您希望捕获组在那里捕获
暂存
任何东西

您可能还需要锚定,因此它与
fooconfig.jsonasdlfja
不匹配:

/^config(?:\.(.+))?\.json$/i
示例:

var rex=/^config(?:\.(.+)?\.json$/i;
var测试={
“config.json”:[true,未定义],
“config.staging.json”:[true,“staging”],
“config.anything.json”:[true,“anything”],
“CONFIG.JSON”:[true,未定义],
“cOnFiG.StAgInG.JsOn”:[true,“StAgInG”],
“fooconfig.json”:null,
“config.jsonfoo”:null,
“configjson”:空
};
Object.key(tests).forEach(function(str){
变量结果=描述(str.match(rex)),
expect=描述(测试[str]);
log(“测试:+str”);
log(“结果:+Result”);
log(“Expect:+Expect”);
如果(结果==预期){
log(“正确”);
}否则{
log(“**错误**”);
}
snippet.log(“--”);
});
函数描述(r){
if(r){
if(r[1]){
返回“匹配,捕获”“+r[1]+”“”;
}
返回“匹配,不捕获”;
}
返回“不匹配”;
}

您的config.json正则表达式是

/\bconfig(\.[\w]+)*\.json\b/gi

where:
\b word boundry
\. dot character
[\w] followed by any word character
()* matches this part zero or more times
/gi global case ignored search

有关示例和结果,请参见

考虑当
*
不匹配时,模式的其余部分是
config..json
。如果是我,我将使用两个单独的正则表达式:
/^config\./I.test(configFile)和&/\.json$/I.test(configFile)
。易于阅读的代码,易于调试的代码。这不适用于
config..json
config.jsonot
字符串