Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
使用{1}+时的正则表达式错误;JavaScript正则表达式中的所有格量词_Javascript_Regex_Express - Fatal编程技术网

使用{1}+时的正则表达式错误;JavaScript正则表达式中的所有格量词

使用{1}+时的正则表达式错误;JavaScript正则表达式中的所有格量词,javascript,regex,express,Javascript,Regex,Express,因为我同时学习Javascript和Express.js,所以在发出get请求时,我尝试使用正则表达式 为了熟悉正则表达式,我使用了这个(也在下面复制) 我的问题是,如果一个正则表达式只有一个/ 换句话说,它将只匹配默认urllocalhost:1337/ app.get(/\/{1}/, function (req, res) { res.render("index"); }); 但是,我上面的当前正则表达式与其他路径名匹配(例如,localhost:1337/home/login

因为我同时学习Javascript和Express.js,所以在发出get请求时,我尝试使用正则表达式

为了熟悉正则表达式,我使用了这个(也在下面复制)

我的问题是,如果一个正则表达式只有一个
/

换句话说,它将只匹配默认url
localhost:1337/

app.get(/\/{1}/, function (req, res) {
    res.render("index"); 
});
但是,我上面的当前正则表达式与其他路径名匹配(例如,
localhost:1337/home/login
),因为现在我知道它使用贪婪的量词

在阅读了更多关于正则表达式的内容后,我将量词改为所有格。
/\/{1}+/

但是express给出了这个错误:

Syntax Error: Invalid Regular Expression: /\/{1}+/: Nothing to Repeat

那么,我的正则表达式语法是否错误?

JavaScript不支持所有格量词。您看到的错误是因为
+
只能用作一个或多个量词

您引用的图表来自Oracle,它解释了Java支持的量词,而不是JavaScript支持的量词

你不需要求助于任何特别的东西来做你想要的匹配

如果要匹配“以
/
结尾的字符串,且其中没有其他斜杠,则可以使用:

/^[^/]+\/$/

字符串的开头,一个或多个非斜杠,后面是斜杠,后面是字符串的结尾。

哦,我不知道。但是是否有任何方法可以使正则表达式这样回答我的问题?一个只与一个
/
匹配的正则表达式是
/\/$/
实际上应该是
/^/*\/[^/]*$/
/\/$/
的问题是它匹配任何以
/
结尾的字符串,因此除了结尾的字符串之外,该字符串前面可能还有一个
/
/^[^/]+\/$/