jQuery - 查找并替换substring

时间:2016-03-21 12:50:19

标签: javascript jquery regex

我们说我得到了这样的字符串

'Hello, I am ***Groot*** today.'
'This is ***not*** my final form.'
'Test test ***123***'

我希望在第一个和第二个星号之后添加一些新东西,使其看起来像

'Hello, I am FIRST***Groot***LAST today.'
'This is FIRST***not***LAST my final form.'
'Test test FIRST***123***LAST'

到目前为止,我设法得到了这个

var first =  jQuery(this).html().indexOf("***");
var last  =  jQuery(this).html().lastIndexOf("***");
console.log( jQuery(this).html().substring(first, last+3) );

但是我对替换失败了......如此接近,但到目前为止......

2 个答案:

答案 0 :(得分:4)

您可以非常轻松地使用正则表达式...这将适用于您的所有字符串。

JSFiddle(检查js控制台)

var str = jQuery(this).text();
str = str.replace(/(\*{3}.*\*{3})/, "FIRST$1LAST");
console.log(str);

另外,您不需要创建jQuery对象只是为了获取文本,可以这样做:

var str = this.innerText;
str = str.replace(/\*{3}.*\*{3}/, "FIRST$&LAST");
console.log(str);

答案 1 :(得分:0)

我认为替换参数中的正确特殊替换字符应该是$&而不是$1,只是为了便于阅读和最佳做法。

$&对应匹配的子字符串,而$1使得RegExp对象中似乎有多个匹配。

参考此处:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace