替换/突出显示JavaScript中的字符串-保持大小写敏感性
Replace/highlight string in JavaScript - keep the case sensitivity
我想在句子中突出显示一个字符串。替换应该适用于不区分大小写的字符(如句子My Foo bar
中的字符串foo
)。
这对我来说没有问题。
var regEx = new RegExp(this._searchString, "gi");
var label = $(item).text();
label = label.replace(regEx, '<span style="font-weight:bold;">' + this._searchString + '</span>');
$(item).html(label);
问题是:如果我在My Foo bar
中搜索并替换foo
,结果将是My <span style="font-weight:bold;">foo</span> bar
,但我想要的是My <span style="font-weight:bold;">Foo</span> bar
。
所以搜索应该忽略大小写敏感性,而不是替换。知道怎么做吗?我看到的唯一方法是首先检查字符串是否包含搜索的字符串,提取它(区分大小写),修改它并将其放回字符串中。但这对我来说似乎工作量太大了,不是吗?
您必须通过将字符串包装在括号中并在替换字符串中使用$1
引用来捕获组中的字符串。
EDIT:我用'b
包装匹配模式,只匹配整个单词。
var original_string = 'My Foo bar',
variable = 'foo',
regex = new RegExp('(''b'+variable+'''b)', 'gi'); // note the parentheses around variable
console.log(original_string.replace(regex, 'precious $1 is really')); // here you reference the 1st capture with $1
使用此方法:Javascript替换引用匹配组?
str = $("#test").text()
var regEx = new RegExp("foo", "gi");
str = str.replace(regEx, function(a,b){
console.log(a)
return '<span style="font-weight:bold;color:red">' + a + '</span>'
})
$("#test").html(str)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test">My Foo bar with Foos and fOO</div>
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 可变大小的JavaScript字符串如何成为基元类型
- 将DOM节点值与字符串Javascript进行比较
- 如何在 Javascript 中将变量的值从字符串转换为整数
- 本地存储中的字符串到字节数组转换
- JavaScript按钮/输入/函数,字符串反转
- 从查询字符串参数推断出正确的数据类型
- 高亮显示与数组字符串一起使用时文本插件中断
- 替换/突出显示JavaScript中的字符串-保持大小写敏感性