【发布时间】:2019-05-23 20:00:00
【问题描述】:
我正在制作一个脚本,通过将字符串的一部分包装在一个跨度中来突出显示它。 (高亮部分由表格决定)
现在我有这个了。
value.replace(term,'<span>'+term+'</span>')
$(document).ready(function(){
var term = $('.n').val();
var matches = ['Tree of life','Life of the tree'];
$('.output>div').remove();
$.each(matches,function(index,value){
$('.output').append('<div>'+value.replace(term,'<b>'+term+'</b>')+'</div>')
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<input type="text" class="n" value="Tree">
<h4>Output</h4>
<div class="output">
</div>
但问题是,这需要术语是相同的大小写。
所以如果我正在寻找树:
- 生命之树 -> 匹配
- 生命之树 -> 没有匹配项
那么如何在 JS 中进行替换,但不考虑大小写?
【问题讨论】:
-
Obligatory link。您应该尝试使用 DOM 方法。
-
见stackoverflow.com/a/494046/3462319,
var re = new RegExp(term,"gi"); -
@p.s.w.g 我很确定 OP 在这里没有使用正则表达式,他只是想匹配一个字符串
-
相关解决方案here
-
@depperm 确保在必要时转义
term- 例如,如果term在正则表达式中包含具有特殊含义的字符,例如^,则仅传递term将失败
标签: javascript jquery