使用{1}+时的正则表达式错误;JavaScript正则表达式中的所有格量词
因为我同时学习Javascript和Express.js,所以在发出get请求时,我尝试使用正则表达式 为了熟悉正则表达式,我使用了这个(也在下面复制) 我的问题是,如果一个正则表达式只有一个使用{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
/
换句话说,它将只匹配默认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支持的量词
你不需要求助于任何特别的东西来做你想要的匹配
如果要匹配“以/
结尾的字符串,且其中没有其他斜杠,则可以使用:
/^[^/]+\/$/
字符串的开头,一个或多个非斜杠,后面是斜杠,后面是字符串的结尾。哦,我不知道。但是是否有任何方法可以使正则表达式这样回答我的问题?一个只与一个
/
匹配的正则表达式是/\/$/
实际上应该是/^/*\/[^/]*$/
。/\/$/
的问题是它匹配任何以/
结尾的字符串,因此除了结尾的字符串之外,该字符串前面可能还有一个/
。
/^[^/]+\/$/