Javascript替换CKEditor中的所有值
Javascript replace all values in CKEditor
Html:
<textarea name="Editor" class="ckeditor" id="aboutme"></textarea>
Javascript:
var editor = CKEDITOR.instances.aboutme;
var edata = editor.getData();
for (var i = 0; i < edata.length; i++) {
var replaced_text = edata.replace(/('[##.+?##'])/, '<span style="background-color:yellow"><strong>$1</strong></span>'); // you could also use a regex in the replace
editor.setData(replaced_text);
}
如果文本区域的值如下,
"Textxx [##YellowText##] Textxxxx"
我将[###YellowText###]替换为黄色背景。我的意思是,如果文本从[###开始,到###]结束,我会用黄色背景替换值。
如果我有下面这样的值,如果我在上面运行javascript代码,FirstText将变为黄色背景,而SecondText或其他文本永远不会改变。
"[##FirstText##] [##SecondText##] [##AnothrText##] [##xxText##]"
我尝试使用"表示">,但没有成功。
如果在javascript中开始[###并结束###],我如何将所有文本值更改为黄色背景?
谢谢。
将global(g(标志添加到正则表达式中,以替换所有匹配的实例。
var replaced_text = edata.replace(/('[##.+?##'])/g, '<span style="background-color:yellow"><strong>$1</strong></span>');
请参阅标志:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
编辑:
主要区别在于
original: /('[##.+?##'])/
modified: /('[##.+?##'])/g
var replaced_text = edata.replace(/'[##(.+?)##']/g, '<span style="background-color:yellow"><strong>$1</strong></span>');
在正则表达式的最后一个/
之后添加g
,以使替换全局(即在整个文本中多次发生,而不仅仅是第一次发生(。
我还更改了捕获组在正则表达式中的位置,因为我认为您不想在替换后保留[##
和##]
。
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- CKEditor Widget-阻止编辑可编辑元素本身
- 我如何找到一个句子中的所有空格并替换忽略它们
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- 如何用更合适的内容替换document.write
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- CKEditor-我在editor.css中的风格是't
- 在DOM中查找一个模式并替换它's的内容使用jquery
- CKeditor:更改对话框中的默认选择选项
- 用空格替换下划线PHP
- 如何在CkEditor的替换功能中禁用插件
- 为什么正则表达式或.replace()不使用CKEditor和Javascript替换脚本中的字符串
- CKEDITOR 将 替换为 和其他标签
- 替换/限制 CKEDITOR 中的非标准字符
- 在显示事件后替换 CKEditor 对话框中的元素
- 如何找到文本和替换它的图像在CKeditor
- 替换ckeditor中的默认属性
- Javascript替换CKEditor中的所有值
- 在ckeditor中查找并替换html(不仅仅是文本)
- CKEditor 4(替换类名)获取文本区域值