javascript - contentEditable DIV 中的大量替换

标签 javascript regex

我已经搜索了几天,但我找到的所有内容都是选定的文本。我需要“粗体”竞争编辑 DIV 中与“test”匹配的所有单词。

我一直在搞乱从DIV获取innerText并用粗体更改这些单词,但是光标丢失了,当再次用innerHTML惰性化更改时,光标移到开头。所以我开始搜索直接在 DIV 上进行这些更改,我唯一找到的是 execCommand,但据我所知,您必须首先选择文本,然后一一进行更改。我想阅读所有 DIV 并即时进行更改,这可能吗?有没有办法将 execCommand 与正则表达式结合起来?

请给我一些光明! :)

最佳答案

如果你想将 contenteditable div 内的单词加粗,相当于放置 <strong>给定单词周围的标签。

所以,我相信你的问题可以通过首先定义一个正则表达式来解决,并使用全局的“g”标志

var boldText = "test"
var testRegEx = new RegExp(boldText, "g")

然后,其中 $div 是代表您要修改其内容的 div(或那个)集合的 JQuery 对象:

$div.html($div.html().replace(textRegEx,"<strong>" + boldText + "</strong>"))

关于javascript - contentEditable DIV 中的大量替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28960125/

相关文章:

javascript - 如何从html页面重定向?

javascript - 是否可以为网站添加定制功能?

ruby - 匹配不包含特定单词的字符串

java - 检查 String 是否可以被 SimpleDateFormat 解析

javascript - 如何通过 jQuery 序列化多个复选框值?

javascript - 加载gapi后加载Angular 5组件

javascript - 使用 lodash 提取混合对象/数组的叶子

php - 将 target=_blank 添加到外部链接

android - 如何从 Flutter 中的字符串中提取表情符号?

PHP查询邮政编码