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

标签 javascript jquery html

我正在尝试替换 [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/

相关文章:

javascript - JS : functions arguments default values

javascript - setInterval 不停止?

javascript - 文件下载完成后如何关闭模态对话框

css - Bootstrap 响应式水平布局 - 确定流程?

jquery - HTML5 的跨浏览器可缩放图像

javascript - 优化完全相同的 iframe 的加载

JavaScript 正则表达式组合

javascript - 如何将 jQuery 事件准确地附加到某个 DOM 元素上

c# - 如何实现在选择时加载元素的下拉框?

javascript - jQuery AJAX 提交表单