1

私のテキストは次のようになります。

action=addItem&siteId=4&lang_locale=en_US&country=US&catalogId=1&productId=417689&displaySize=7&skuSize=2194171&qty=1&pil=7&psh=had+AIRJRnjbp7+rGivIKg00

「psh」の値を置き換えたいと思います。最後の値ではない場合があります (その後に が続く場合があります&something=else)。

私はこれらのコード行を試してみました:

  1. var text = text.replace(/&psh=.*(?=&|$)/, "&psh=" + data.psh);
  2. var text = text.replace(/&psh=.*(?=[&|$]+)/, "&psh=" + data.psh);
  3. var text = text.replace(/(?:&psh=)(.*)(?=[&|$]+)/, data.psh);

両方の状況で機能するものはありません。このサイトを使用して、正規表現を確認してください。

4

2 に答える 2

4

これはうまくいくはずです:

var text = text.replace(/&psh=[^&]*/, "&psh=" + data.psh);

[^&]*. _ &_&

于 2012-09-08T20:42:39.833 に答える
0

ティムの答えはうまくいくかもしれませんが、最善の答えではないのではないかと心配しています。例として示している文字列は、URL によく似ています。そうである場合、シャープ記号 (#) が含まれている場合があることを意味します。これを補うには、コードを次のように変更する必要があります。

var text = text.replace(/&psh=[^&#]*/, "&psh=" + data.psh);

URL のアンカー タグにつまずかないように追加された # に注意してください。

于 2012-09-08T22:27:37.563 に答える