2016-08-26 9 views
0

に試合以外のすべてを取得する私は、URLの後の最初の部分を取得するには、次の正規表現を持っている:JavaScriptの正規表現

FOO:

^http[s]?:\/\/.*?\/([a-zA-Z-_.%]+).*$ 

それは以下のURLでテストと一致します。 comの
http://foo.com
http://foo.com/テスト
http://foo.com/テスト/
http://foo.com/テスト?私は今、何をしようとしているバー

は同じURLを再作成するが、異なる値でテストを交換です。試合前後のパーツを取ったり、結果を逆転させたりする。

これを行う方法は間違いありませんが、私はそうする方法を見つけることができません。

+0

は、このように '^のようにその周りにキャプチャグループを置く(HTTP [S]:??\/\ /.* \ /)[-ZA-Z -_%。 ] +(。*)$ 'を' $ 1newtest $ 2'に置き換えます – sln

答えて

2

あなたは/test前の部分のためのキャプチャグループを使用し、交換のように後方参照に使用することができます:

var re = /^(https?:\/\/[^\/]+\/)[^?\/]+/gmi; 
var subst = '$1foobar'; 

var result = str.replace(re, subst); 

[^?\/]+は、URLのドメイン名の後に次の/または?前にテキストと一致します。元の正規表現では、URLはhttp://またはhttps://で始まるものとします。

あなたが良い音とは何RegEx Demo