斜杠包围数字的正则表达式

发布于 2024-12-06 15:41:41 字数 406 浏览 0 评论 0原文

就像标题所说,我在 JavaScript 中有一个(错误的)正则表达式,它应该检查斜杠包围的“2”字符(在本例中)。因此,如果 URL 为 http://localhost/page/2/ 则正则表达式将通过。

就我而言,我有类似 http://localhost/?page=2 的内容,正则表达式仍然通过。

我不知道为什么。谁能告诉我有什么问题吗?

/^(.*?)\b2\b(.*?$)/

(我要告诉你,我没有写这段代码,我不知道它是如何工作的,因为我对正则表达式真的很糟糕)

Like the title says, I have a (faulty) Regex in JavaScript, that should check for a "2" character (in this case) surrounded by slashes. So if the URL was http://localhost/page/2/ the Regex would pass.

In my case I have something like http://localhost/?page=2 and the Regex still passes.

I'm not sure why. Could anyone tell me what's wrong with it?

/^(.*?)\b2\b(.*?$)/

(I'm going to tell you, I didn't write this code and I have no idea how it works, cause I'm really bad with Regex)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独孤求败 2024-12-13 15:41:41

看起来太简单了,但这不应该起作用吗?

/\/2\// 

http://jsfiddle.net/QHac8/1/

因为它是 javascript,所以你必须转义正斜杠,因为它们是正则表达式字符串的分隔符。

或者如果你想匹配任何数字:

/\/\d+\// 

Seems too simple but shouldn't this work?:

/\/2\// 

http://jsfiddle.net/QHac8/1/

As it's javascript you have to escape the forward slashes as they are the delimiters for a regex string.

or if you want to match any number:

/\/\d+\// 
怪我太投入 2024-12-13 15:41:41

您不检查斜线包围的数字。您看到的斜杠只是您的正则表达式分隔符。检查每边是否有单词边界 \b 的 2。对于 /2/ 如此,对于 =2 也是如此。

如果您只想允许斜杠包围的 2,请尝试使用此

/^(.*?)\/2\/(.*?)$/

^ 表示匹配字符串

$ 的开头匹配,直到字符串 (.*?) 的结尾,

这些部分匹配 2 之前和之后的所有内容,并且这些部分存储在捕获组中。

如果您不需要这些部分,那么 Richard D 是对的,正则表达式 /\/2\// 适合您。

You don't check for a digit surrounded by slashes. The slashes you see are only your regex delimiters. You check for a 2 with a word boundary \b on each side. This is true for /2/ but also for =2

If you want to allow only a 2 surrounded by slashes try this

/^(.*?)\/2\/(.*?)$/

^ means match from the start of the string

$ match till the end of the string

(.*?) those parts are matching everything before and after your 2 and those parts are stored in capturing groups.

If you don't need those parts, then Richard D is right and the regex /\/2\// is fine for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文