我正在尝试替换 [lorem]
和 [/lorem]
之间的所有内容。例如:
[lorem]这里是一些文本[/lorem]
会变成
这些在 lorem block 中
我已经设法让它与 [[Here goes some text]]
一起工作,使用
var block = $('body').html().replace(/\[[^\]]+\]]/ig, "This is inside a lorem block");
$('body').html(block);
但我终其一生都无法使用前者使其正常工作,要么是因为我做错了什么,要么是我实际上不了解它是如何工作的。另外,替换函数中的 ^
有什么作用?我猜它的意思是“介于两者之间的任何东西”,但当然我可能是错的。我在哪里可以阅读这些内容?
最佳答案
尝试使用 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);
关于javascript - 更改两个文本/字符串之间的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188350/