2016-12-02 1 views
0
私は何か他のものに「= IMG」の後、すべてを変更したい

、次のコードは動作しません。javascriptで一致する部分の後にサブストリングを置き換える方法は?

var j = '/test/123=img?xyze' 
j.replace(/=img\.*/, ''); 

どのように任意のアイデア?これのおかげで、

AC

+0

これは何か他のものでしょうか? – HelpingHand

+0

'(part1)part2'のように最初の部分をグループ化し、' $ 1thing'によってrepaceします。 –

+0

String.prototype.replaceは文字列を変更しません。置換が適用されたコピーを返します。 –

答えて

2
var j = '/test/123=img?xyze' 
j=j.replace(/(=img)(.*)/, '$1_somethingElse'); 
console.log(j); // "/test/123=img_somethingElse" 

$1=imgであり、あなたがそれを必要に応じて、残りは$2になります。

さらなる読書:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Switching_words_in_a_string

+0

これは 'match'を使うほうが簡単でしょうか? – HelpingHand

+0

ここでは文字列の終わりを置き換えるだけであれば、matchは動作しますが、 'replace'は必要に応じて文字列の真ん中から置き換えられるので、より堅牢です。文字列の置換を行う場合、 'replace'も自然選択のようです。マッチも動作しますが、私はそれが簡単だとは言いません。 – chiliNUT

+0

私は、文字列の真ん中でマッチが置き換わることは確かです。私はこのように使用された交換を見たことがない...毎日何か新しいことを学ぶ! – HelpingHand

1

変更:あなたがそう望むならば

var j = '/test/123=img?xyze'; 
var replacementText = 'something-else'; 
j = j.match(/^.+?=img/i)[0] + replacementText; 

そうでない場合は、下のこの小さなスニペットは、あなたが変更したいものを、周囲のクエリのすべての部分を与える:

var j = '/test/123=img?xyze'; 
var replacementText = 'something-else'; 
var parts = j.match(/^(.+?)(=img)(.+)$/i); 

// /test/123=img?xyze : parts[0] 
// /test/123   : parts[1] 
// =img    : parts[2] 
// ?xyze    : parts[3] 

あなたは、その後の交換のためにこれを行うだろう:

j = parts[1] + parts[2] + replacementText; 
+0

彼は '= img'に続くものを別のものに置き換えたいと思っています。 –

+0

おっと...ちょうどそれを見ました...ありがとう。 – HelpingHand

0

var j = '/test/123=img?xyze' 
 
var x = j.substr(0, j.indexOf('=img')) + '=img' 
 
console.log(x)

関連する問題