0

多くの解決策を見つけましたが、役に立ちませんでした。

例として、www.スペースまたは ?. この場合、それが で終わっているという意味であり?、必ずしも CGI 関連の URL であるとは限りません。

正規表現を使用しようとしています

var r = /(^|[\s\?])(www\..+?(?=([\s]|\?|($))))/g;

私の使用例: http://jsfiddle.net/DKNat/2/

before\?を含む URL の末尾を防ぐために正規表現で使用するにはどうすればよいですか?/?

http://jsfiddle.net/DKNat/11/

URL の末尾にある DOT で最後の問題を解決できません。どんな体も助けてくれますか?

4

1 に答える 1

1

あなたのフィドルでこれを試してください:

var r = /(^|\??)(www\.[^\?]+)/g;

ここでフィドルを更新しました:

http://jsfiddle.net/DKNat/3/

アップデート:

あなたが今何をしようとしているのか分かります。残念ながら、両方の文字列は を除いて本質的に同じである/ため、正規表現でスラッシュの後の任意の場所が CGI 呼び出しを表すと仮定しない限り、?できることはあまりありません。しかし、これを試すことができます:

var r = /(^|\??)(www\.[^\?]+\/[^\/]+\?[^\?]+|www\.[^\?]+)/g;

更新されたフィドル:

http://jsfiddle.net/DKNat/5/

更新 2:要件を決定した後、これがフィドル 10 に追加した最終的な RegExp です。

var r = /(^|[\?\s])(www\.[^\? ]+\/[^\/ ]*\?[^\? ]+|www\.[^\? ]+)/g;
于 2013-08-22T13:56:52.723 に答える