1

さて、私はjavascriptにいくつかの変数を持っています...

var link = 'http://8wayrun.com/streams/multi?type=3&pos1=1.teamsp00ky.video&pos2=1.teamsp00ky.chat&pos3=1.nycfurby.chat';
var position = 2;

ご覧のとおり、リンクと位置があります。position var を使用して、リンク フィールドのテキストを置き換えたいと思います。&pos2=1.teamsp00ky.chatリンクを剥がしたいです。当然、いくつかの基本的な正規表現を行う必要があります。正規表現で位置変数を使用しようとすると問題が発生します。私はそれを理解することはできません。

PHPでは、次のことができます。

preg_replace('/&pos'.$position.'=[^&]*/i', '', $link);

JSで次のことを試しましたが、うまくいきません:

link.replace(new RegExp('&pos'+position+'=[^&]*'), '');

誰かが私を助けて、私が間違っていることを教えてもらえますか? また、大文字と小文字を区別しないようにするにはどうすればよいですか?

4

3 に答える 3

5

メソッドを呼び出すだけでなく、値を設定する必要があります。

link = link.replace(new RegExp('&pos'+position+'=[^&]*'), '');

大文字と小文字を区別しないようにするには、次の正規表現を使用します。

new RegExp('&pos'+position+'=[^&]*', "i")

「?」で文字列を分割してから、キーと値のペアを「&」で分割し、さらに「=」で分割すると簡単になる場合があります

于 2013-04-20T19:59:58.670 に答える
2

誰かが私を助けて、私が間違っていることを教えてもらえますか?

replace文字列を変更しませんが、新しいものを返します - どこかに割り当てる必要があります。

また、大文字と小文字を区別しないようにするにはどうすればよいですか?

iフラグをRegExpコンストラクターに渡します。

link = link.replace(new RegExp('&pos'+position+'=[^&]*', 'i'), '');
于 2013-04-20T20:01:27.027 に答える
0
<div id="result"></div>

var link = 'http://8wayrun.com/streams/multi?type=3&pos1=1.teamsp00ky.video&pos2=1.teamsp00ky.chat&pos3=1.nycfurby.chat';
var position = 2;

var start = link.indexOf("pos2");

var end = link.indexOf("&", start);

document.getElementById("result").textContent = link.slice(0, start) + link.slice(end + 1);

jsfiddle

于 2013-04-20T20:05:50.397 に答える