如何在javascript中匹配部分后替换子字符串?

时间:2016-12-02 02:24:23

标签: javascript regex

我想将'= img'之后的所有内容更改为其他内容,但代码不起作用:

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

任何想法如何?谢谢,

A.C。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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;

答案 2 :(得分:0)



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