特殊字符JavaScript测试
假设我有这个HTML元素:特殊字符JavaScript测试,javascript,html,Javascript,Html,假设我有这个HTML元素: <td>—</td> 如何测试&mdash在我的JavaScript代码中不使用其他字符 console.log(elem.innerHTML == "—"); // false console.log(elem.textContent == "—"); // false console.log(elem.innerHTML == "—"); // true console.log(
<td>—</td>
如何测试&mdash代码>在我的JavaScript代码中不使用其他字符
console.log(elem.innerHTML == "—"); // false
console.log(elem.textContent == "—"); // false
console.log(elem.innerHTML == "—"); // true
console.log(elem.textContent == "—"); // true
emdash的unicode等价物是\u2014
。您可以使用此unicode与html进行比较
HTML元的默认编码设置为UTF
,因此所有实体都转换为UTF-8。阅读更多
var dash=document.getElementById('dash').innerText;
警报(破折号=='\u2014')代码>
&mdash代码>您可以创建一个新的DOM元素,并比较这两个元素:
/**
*测试DOM元素的内部HTML是否为===&mdash;
*/
功能测试(el){
var tempEl=document.createElement('div');
tempEl.innerHTML='&mdash;';
返回el.innerHTML===tempEl.innerHTML;
}
//试试看!
elem=document.getElementById('dash');
警报(mdashTest(elem))代码>
&mdash代码>我建议:
通过DOMParser()
函数parseToText(代码){
返回新的DOMParser().parseFromString(“”+code+“”,“text/html”).firstChild.textContent;
}
var=document.getElementById('text')。innerHTML==parseToText('mdash;');
document.write(“isEquals”,is,parseToText(“&mdash;”))代码>
&mdash代码>聪明的解决方案。但是,我仍然希望使用&mdash代码>在我的代码中,而不是任何其他characters@RichardWallace尝试更改answerwith jquery中的字符集:elem.innerHTML==$(“&mdash;”).html()
elem.innerHTML==document.createRange().createContextualFragment(”).firstChild.textContent
@sheralituiev,这非常简洁。你应该考虑把它作为一个答案(当然还有更多的解释)。
console.log(elem.innerHTML == "—"); // false
console.log(elem.textContent == "—"); // false
console.log(elem.innerHTML == "—"); // true
console.log(elem.textContent == "—"); // true