更改两个文本/字符串之间的所有内容

时间:2014-04-20 22:34:32

标签: javascript jquery html

我试图替换[lorem][/lorem]之间的所有内容。例如:

[lorem]Here goes some text[/lorem]

将变成

These is inside a lorem block

我已经使用

使其与[[Here goes some text]]一起使用
var block = $('body').html().replace(/\[[^\]]+\]]/ig, "This is inside a lorem block");
$('body').html(block);

但我无法为我的生活而使用前者,因为我做错了事,或者我实际上并不了解它是如何运作的。另外,替换函数中的^有什么作用?我猜这意味着类似于"之间的任何事情"但我当然错了。我在哪里可以阅读这些内容?

1 个答案:

答案 0 :(得分:2)

尝试使用RegExp /\[lorem\].*?\[\/lorem\]/ig

var block = $('body').html().replace(/\[lorem\].*?\[\/lorem\]/ig, "This is inside a lorem block");
$('body').html(block);


编辑:

要允许换行符,请使用以下内容:(信用@PatrickAllen)

var block = $('body').html().replace(/\[lorem\][\s\S]*?\[\/lorem\]/ig, "This is inside a lorem block");
$('body').html(block);