Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript替换CKEditor中的所有值_Javascript_Html_Ckeditor - Fatal编程技术网

Javascript替换CKEditor中的所有值

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(/(\[##.+

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(/(\[##.+?##\])/, '<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>');