Javascript替换CKEditor中的所有值
Html:Javascript替换CKEditor中的所有值,javascript,html,ckeditor,Javascript,Html,Ckeditor,Html: <textarea name="Editor" class="ckeditor" id="aboutme"></textarea> var editor = CKEDITOR.instances.aboutme; var edata = editor.getData(); for (var i = 0; i < edata.length; i++) { var replaced_text = edata.replace(/(\[##.+
<textarea name="Editor" class="ckeditor" id="aboutme"></textarea>
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);
}
我将[###YellowText###]替换为黄色背景。我的意思是,如果文本开始[##并结束##],我将值替换为黄色背景
若我有下面这样的值,若我在javascript代码上面运行,FirstText会更改黄色背景,而SecondText或其他文本则不会更改
"[##FirstText##] [##SecondText##] [##AnothrText##] [##xxText##]"
我试着用“for”,但它不起作用
如果开始[##和结束##]时,我如何将所有文本值更改为javascript中的黄色背景
谢谢。将全局(g)标志添加到正则表达式以替换所有匹配的实例
var replaced_text = edata.replace(/(\[##.+?##\])/g, '<span style="background-color:yellow"><strong>$1</strong></span>');
var-replaced\u text=edata.replace(/(\[\\\\\.+?\\\\])/g,“$1”;
见旗帜:
编辑:
主要区别在于
原件:/(\[\\\\\.+?\\]/
修改:/(\[\\\\.+?\\\]/g)
var-replacemented\u text=edata.replace(/\[\\\\\\.+)\\\\]/g,$1);
在正则表达式的最后一个/
之后添加g
,以使替换全局化(即,在整个文本中多次发生,而不仅仅是第一次发生)
我还改变了您的捕获组在正则表达式中的位置,因为我假设您不想在替换后保留
[##
和##]
。为什么我不能理解替换的文本作为全局文本应该不起作用?
var replaced_text = edata.replace(/(\[##.+?##\])/g, '<span style="background-color:yellow"><strong>$1</strong></span>');
var replaced_text = edata.replace(/\[##(.+?)##\]/g, '<span style="background-color:yellow"><strong>$1</strong></span>');