Javascript replace() 使用 html 个实体
Javascript replace() using html entities
出于某种原因,Javascript replace('search', 'replace')
函数适用于一些 HTML 实体字符串作为搜索词,但对其他一些实体字符串却不是我期望的那样。这些不一致是非常有问题的,我什至无法通过它的工作方式解决这个问题。我如何保证这些实体搜索词总能找到完整的纯文本词?我需要替换以 ‐
在此示例中的方式工作:
$(document).ready(function(){
$('#good').html($('#good').html().replace($('#good').data('text'), 'FOUND'));
$('#okay').html($('#okay').html().replace($('#okay').data('text'), 'FOUND'));
$('#bad').html($('#bad').html().replace($('#bad').data('text'), 'FOUND'));
$('#wrong').html($('#wrong').html().replace($('#wrong').data('text'), 'FOUND'));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="good" data-text="find">
1: find
</div>
<div id="okay" data-text="‐">
2: ‐
</div>
<div id="bad" data-text=">">
3: >
</div>
<div id="wrong" data-text="&">
4: &
</div>
按照@vlaz 的建议使用.text()
而不是.html()
。我 运行 使用 .text()
的示例,它工作正常:
$(document).ready(function(){
$('#good').text($('#good').text().replace($('#good').data('text'), 'FOUND'));
$('#okay').text($('#okay').text().replace($('#okay').data('text'), 'FOUND'));
$('#bad').text($('#bad').text().replace($('#bad').data('text'), 'FOUND'));
$('#wrong').text($('#wrong').text().replace($('#wrong').data('text'), 'FOUND'));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="good" data-text="find">
1: find
</div>
<div id="okay" data-text="‐">
2: ‐
</div>
<div id="bad" data-text=">">
3: >
</div>
<div id="wrong" data-text="&">
4: &
</div>
出于某种原因,Javascript replace('search', 'replace')
函数适用于一些 HTML 实体字符串作为搜索词,但对其他一些实体字符串却不是我期望的那样。这些不一致是非常有问题的,我什至无法通过它的工作方式解决这个问题。我如何保证这些实体搜索词总能找到完整的纯文本词?我需要替换以 ‐
在此示例中的方式工作:
$(document).ready(function(){
$('#good').html($('#good').html().replace($('#good').data('text'), 'FOUND'));
$('#okay').html($('#okay').html().replace($('#okay').data('text'), 'FOUND'));
$('#bad').html($('#bad').html().replace($('#bad').data('text'), 'FOUND'));
$('#wrong').html($('#wrong').html().replace($('#wrong').data('text'), 'FOUND'));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="good" data-text="find">
1: find
</div>
<div id="okay" data-text="‐">
2: ‐
</div>
<div id="bad" data-text=">">
3: >
</div>
<div id="wrong" data-text="&">
4: &
</div>
按照@vlaz 的建议使用.text()
而不是.html()
。我 运行 使用 .text()
的示例,它工作正常:
$(document).ready(function(){
$('#good').text($('#good').text().replace($('#good').data('text'), 'FOUND'));
$('#okay').text($('#okay').text().replace($('#okay').data('text'), 'FOUND'));
$('#bad').text($('#bad').text().replace($('#bad').data('text'), 'FOUND'));
$('#wrong').text($('#wrong').text().replace($('#wrong').data('text'), 'FOUND'));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="good" data-text="find">
1: find
</div>
<div id="okay" data-text="‐">
2: ‐
</div>
<div id="bad" data-text=">">
3: >
</div>
<div id="wrong" data-text="&">
4: &
</div>