项目要求,对ckEditor编辑器做了一个全局高亮/取消高亮指定文字的功能,主要是为了兼容了IE。
以下是取消高亮功能的实现。
源字段及可视化效果:
<p> 没<span style="background-color: rgb(255,155,0)">的</span></p> <p> ab非<span style="background-color: rgb(255,155,0)">的</span></p> <p> AB破洞<span style="background-color: rgb(255,155,0)">的</span></p>
替换后字段及可视化效果:
<p> 没的</p> <p> ab非的</p> <p> AB破洞的</p>
实现方法:
var keyWord = formPanel.getForm().findField('keyWord').getValue(); if(keyWord != ''){ //获取编辑器上的的全部字符 var ckBody = CKEDITOR.instances["appendixCont"].document.getBody(); var allText = ckBody.getHtml() //先把BACKGROUND-COLOR: rgb(255,155,0)替换为空 //第一次替换后剩余的样式即为<SPAN style="">***</SPAN> allText = allText.replace(/BACKGROUND-COLOR:\s*rgb\(255,155,0\)/ig, ""); var regText = '<SPAN style="">' + keyWord + '</SPAN>'; var regS = new RegExp(regText, "gi"); //再替换剩余的字段 allText = allText.replace(regS, keyWord); //重新把替换后的字符写入编辑器 ckBody.setHtml(allText, true); }
备注:
new RegExp(pattern, attributes);参数
参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。
返回值
一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。
如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。
抛出
SyntaxError - 如果 pattern 不是合法的正则表达式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。
TypeError - 如果 pattern 是 RegExp 对象,但没有省略 attributes 参数,抛出该异常。
相关推荐
5. **标志**:`g` 全局匹配,`i` 忽略大小写,`m` 多行模式。 6. **方法**:`test()` 检查字符串是否匹配,`match()` 返回匹配结果,`search()` 查找第一次出现的位置,`replace()` 替换匹配的部分,`split()` 使用...
5. **自定义设置**:用户可以根据自己的需求自定义搜索和替换的参数,比如忽略大小写、匹配整词等。 6. **批量操作日志**:工具可能记录每一次批量处理的详细日志,便于用户追踪和回溯操作历史。 7. **易用性**:...
3. **高级搜索选项**:除了基本的关键词搜索,"Search and Replace"还提供了诸如忽略大小写、全词匹配、正则表达式等高级搜索选项,满足了开发者对复杂查询的需求。 二、替换功能精讲 1. **批量替换**:在找到目标...
例如,`new RegExp(keywords.join("|"), "gi")`将创建一个全局(g)和不区分大小写(i)的正则表达式。 4. **字符串替换** 使用`String.prototype.replace()`方法,结合新创建的正则表达式,我们可以找到文本中...
本文将详细介绍如何通过结合JavaScript(JS)和层叠样式表(CSS)来创建一种能够提升用户体验的网页表单特效。此方法适用于前端开发人员进行深入研究,旨在通过优化用户交互体验来提高表单填写效率和准确性。 #### ...
3. **不区分大小写的全局匹配**:示例中创建了正则表达式的模式为`new RegExp("("+searchVal+")","ig")`,其中`i`标志表示忽略大小写,`g`标志表示全局匹配,意味着将匹配输入字符串中的所有实例。 4. **动态更新...
其中,`keyword`是需要高亮的词,`gi`标志表示全局(g)和不区分大小写(i)的匹配。 3. **遍历文本**: 使用JavaScript的`innerHTML`或`innerText`属性,以及`replace()`方法来遍历文本输入框的值,替换匹配项为...
2. `i`忽略大小写,使匹配不区分大小写。 3. `m`多行模式,`^`和`$`可以匹配每一行的开头和结尾。 六、模式修饰符 1. `u`Unicode模式,用于处理Unicode字符。 2. `y`粘贴模式,匹配时要求定位符必须与上一次匹配的...
`flags`是可选的,包括`g`(全局匹配,找到所有匹配项而非只找第一个)、`i`(忽略大小写)和`m`(多行模式,使`^`和`$`能匹配每一行的开始和结束)。 现在,假设我们已经有了一个字符串`content`,我们要搜索的...
最后的`g`和`i`是正则表达式的修饰符,`g`代表全局匹配,`i`表示不区分大小写。 该函数将会把传入的字符串中所有匹配到的font标签替换成空字符串,即实现删除效果。 接下来,我们可能会遇到一些特殊情况,例如标签...
例如,`new RegExp(keyword, 'gi')`创建一个全局、不区分大小写的正则表达式,其中`keyword`是用户的搜索词。正则表达式`gi`标志代表全局匹配(g)和不区分大小写(i)。 3. **替换匹配到的文本**:使用`String....
然后,创建了一个RegExp对象`objRegExp`,设置其属性以忽略大小写(`IgnoreCase=True`)并进行全局替换(`Global=True`)。接着定义了三个正则表达式模式: 1. 匹配JavaScript代码的`<script>`标签:`[^>]*?>.*?...
例如,使用`/pattern/gi`可以全局、不区分大小写地搜索字符串。 6. JavaScript提供了`RegExp`对象和字符串对象的`match()`, `test()`, `replace()`, `search()`等方法,配合正则表达式进行复杂的文本处理。例如,`...
|--js中正则表达式语法:/正则表达式/[属性后缀]--其中属性后缀,g:全局匹配 i:忽略大小写(仅英文有效) 如果不适用模式匹配方式,将执行原文匹配 结果:如果正则表达式写错,也将执行原文匹配 12.Array笔试题...
// 使用正则表达式,'gi'表示全局和不区分大小写匹配 result = result.replace(regex, '$&</span>'); } return result; } var text = "这是一个关于'关键字加亮'的示例。"; var keywords = ["关键字", "加亮"];...
`new RegExp(keyword, 'gi')`创建一个正则表达式,`'g'`表示全局匹配,`'i'`表示忽略大小写。匹配到的关键词被包裹在`<span>`标签内,`class="highlight"`使得我们可以通过CSS控制高亮样式。 最后,为了使高亮效果...
4. 模式修饰符:讲解了正则表达式修饰符的作用,如全局搜索、大小写不敏感等。 5. 正则方法:介绍JavaScript中的正则表达式相关方法,如test、exec等。 6. 支持正则的String方法:讲解了字符串对象中支持正则的方法...
此外,高级搜索通常还包括大小写敏感/不敏感、全词匹配、正则表达式等选项,以满足不同需求。 **替换功能**:替换功能是搜索功能的延伸,它不仅找到匹配的文本,还会将这些文本替换为用户指定的新内容。例如,在...
在JavaScript中,我们可以使用类似的方法,但通过正则表达式`new RegExp(keyword, 'gi')`来实现全局(g)和不区分大小写(i)的匹配。 2. 用正则,CSS背景变色 对于更复杂的需求,我们可以使用正则表达式配合CSS来...
正则表达式`new RegExp(keyword, 'gi')`用于全局搜索和不区分大小写匹配。`replace()`函数内部的回调函数将每个匹配项替换为带有`highlight`样式的`<span>`元素。 接下来,我们需要在HTML文件中应用这个函数。通常...