gpt4 book ai didi

javascript - 在 JavaScript 正则表达式中使用 {1}+ 所有格量词时出现正则表达式错误

转载 作者:行者123 更新时间:2023-11-28 01:04:15 24 4
gpt4 key购买 nike

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

为了熟悉正则表达式,我使用了这个 chart (也转载如下)

Greedy  Reluctant   Possessive  Meaning
X? X?? X?+ X, once or not at all
X* X*? X*+ X, zero or more times
X+ X+? X++ X, one or more times
X{n} X{n}? X{n}+ X, exactly n times
X{n,} X{n,}? X{n,}+ X, at least n times
X{n,m} X{n,m}? X{n,m}+ X, at least n but not more than m times

我的问题是,如果只有一个 /,我怎样才能得到一个正则表达式来匹配一个 url。
换句话说,它只会匹配默认的 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)支持的量词。

您不需要采取任何特殊措施来进行您想要的匹配。

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

/^[^/]+\/$/

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

关于javascript - 在 JavaScript 正则表达式中使用 {1}+ 所有格量词时出现正则表达式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25255790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com