如果pathname以及包含开头。正则表达式

时间:2013-10-31 05:43:30

标签: javascript regex testing

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

新的RegExp感谢其中一个答案,我将其扩展了更多。

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

我的网址看起来像

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

虽然我们有其他我不想要的模式。我需要从privmsg开始获取常量URL,并至少发布或回复它。有人可以解释我的正则表达式字符串有什么问题吗?如果我错误地使用了量词。

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

2 个答案:

答案 0 :(得分:1)

您错过了mode=的内容。

使用正则表达式,您将匹配/privmsg?post等字符串。

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

^\/privmsg\?.*(post|reply)$

答案 1 :(得分:1)

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

var post = /^\/privmsg\?.+(post|reply){1}/g;
                        \/
                 |match any sequence of|
                 |1 or more characters |