0

URL のパス名をテストしようとしています。パス名が privmsg で始まり、選択した単語の 1 つが含まれているかどうかを確認しています。そして、量指定子は、少なくとも 1 つの単語が見つかる必要があることを選択しています。

答えの1つに感謝し、それをさらに拡張しました。

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

私のURLは次のようになります

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

私が望まない他のモードがありますが。privmsg で始まり、少なくとも投稿または返信が含まれる一定の URL を取得する必要があります。誰かが私の正規表現文字列の何が問題なのか、そして量指定子を間違って使用したかどうかを説明できますか?

今の問題は、それがまだ間違っていることです...

4

2 に答える 2

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 に答える
1

の何かを含めるのを逃しますmode=

正規表現を使用すると、次のような文字列に一致します/privmsg?post

したがって、正規表現を次のように変更しますmode=

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