Javascript jQuery-查找和替换子字符串

Javascript jQuery-查找和替换子字符串,javascript,jquery,regex,Javascript,Jquery,Regex,假设我有这样的弦 'Hello, I am ***Groot*** today.' 'This is ***not*** my final form.' 'Test test ***123***' 我想在第一个asterix之前和第二个asterix之后添加一些新内容,使其看起来像 'Hello, I am FIRST***Groot***LAST today.' 'This is FIRST***not***LAST my final form.' 'Test test FIRST***12

假设我有这样的弦

'Hello, I am ***Groot*** today.'
'This is ***not*** my final form.'
'Test test ***123***'
我想在第一个asterix之前和第二个asterix之后添加一些新内容,使其看起来像

'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) );

但是我在替换上失败了…如此接近,但到目前为止…

您可以非常轻松地使用regex。。。这将适用于所有字符串

(检查js控制台)

此外,您不需要创建jQuery对象来获取文本,您可以这样做:

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

你可以很容易地使用正则表达式。。。这将适用于所有字符串

(检查js控制台)

此外,您不需要创建jQuery对象来获取文本,您可以这样做:

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

我认为替换参数中正确的特殊替换字符应该是
$&
,而不是
$1
,这仅仅是为了可读性和最佳实践

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


此处参考:

我认为替换参数中正确的特殊替换字符应该是
$&
,而不是
$1
,这仅仅是为了可读性和最佳实践

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

此处参考: