0

我正在尝试测试 url 的路径名,检查路径名是否以 privmsg 开头以及是否包含选择中的单词之一。我的量词是选择必须找到至少一个词。

新的正则表达式感谢其中一个答案,我对其进行了更多扩展。

var post = /(^\/privmsg\?).+(post|reply){1}(.*)?/; 

我的网址看起来像

/privmsg?mode=post
/privmsg?mode=reply
/privmsg?mode=reply&p=2 //another way 

虽然我们有其他我不想要的模式。我只需要获取以 privmsg 开头的常量 url 并至少在其中发布或回复。有人可以解释我的正则表达式字符串有什么问题以及我是否错误地使用了量词。

现在的问题是它仍然是假的......

4

2 回答 2

1

你错过了为mode=.

使用您的正则表达式,您将匹配字符串,如/privmsg?post.

所以改变你的正则表达式包括mode=

^\/privmsg\?.*(post|reply)$
于 2013-10-31T05:47:19.303 回答
1

您需要允许?(post|reply)(即mode=)之间的任意字符。例如:

var post = /^\/privmsg\?.+(post|reply){1}/g;
                        \/
                 |match any sequence of|
                 |1 or more characters |
于 2013-10-31T05:47:39.530 回答