测试特殊字符JavaScript
Testing for special characters JavaScript
假设我有这样一个HTML元素:
<td>—</td>
当被浏览器解析时,—
被转换为实际的-破折号,如下所示:
<td>—</td>
我如何测试—
不使用其他字符在我的JavaScript代码?
console.log(elem.innerHTML == "—"); // false
console.log(elem.textContent == "—"); // false
console.log(elem.innerHTML == "—"); // true
console.log(elem.textContent == "—"); // true
您可以创建一个新的DOM元素,并比较两者:
/**
* Test that a DOM element's inner HTML is === —
*/
function mdashTest(el) {
var tempEl = document.createElement('div');
tempEl.innerHTML = '—';
return el.innerHTML === tempEl.innerHTML;
}
// Test it!
elem = document.getElementById('dash');
alert( mdashTest( elem ) );
<div id="dash">—</div>
与emdash等价的unicode是'u2014
。您可以使用此unicode与html.
HTML元数据的默认编码设置为UTF
,因此所有实体都转换为UTF-8。阅读更多https://developer.mozilla.org/en/docs/Web/HTML/Element/meta#Attributes
var dash = document.getElementById('dash').innerText;
alert(dash === ''u2014');
<div id="dash">—</div>
我建议:
- 至
DOMParser()
function parseToText(code) {
return new DOMParser().parseFromString('<em>' + code + '</em>', "text/html").firstChild.textContent;
}
var is = document.getElementById('text').innerHTML == parseToText("—");
document.write("isEquals ", is, parseToText("—"));
<em id="text">—</em>
- 或者,使用jQuery:
function parseToText(code) {
return $("<em>" + code + "</em>").html()
}
var isEquals = document.getElementById('text').innerText == parseToText("—");
document.write("isEquals ", isEquals);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<em id="text">—</em>
- 或者,使用纯JavaScript:
function parseToText(code) {
return document.createRange().createContextualFragment(code).firstChild.textContent;
}
var isEquals = document.getElementById('text').innerText == parseToText("—");
document.write("isEquals ", isEquals);
<em id="text">—</em>
相关文章:
- javascript替换换行符和特殊字符
- 在 Javascript 中对特殊字符进行排序 (æ)
- 用于在Javascript中删除多个空格的特殊字符
- javascript正则表达式来识别所有特殊字符
- Javascript:包括特殊字符的文本选择
- 替换字符串javascript中的所有特殊字符..
- 从JavaScript中正确返回html中的特殊字符
- 如何不显示/过滤特殊字符?(CSS或Javascript)
- 使用javascript验证只有一个特殊字符的字符串
- 如何使用javascript在输入元素中显示特殊字符
- 在 Javascript 函数中对参数值使用特殊字符时出现 Javascript 错误
- Javascript和RegEx用于删除特殊字符
- REGEX (javascript) - 允许字母数字字符中的特殊字符不在第一个位置
- 如何在javascript中替换HTML特殊字符
- 用于检查特殊字符的 JavaScript 代码
- 跳过用户输入的文本字符串中的特殊字符,并在 Javascript 中的每个单词后添加连字符
- 从 ASP.NET 转义 JavaScript 特殊字符
- JavaScript 特殊字符的误解
- Javascript特殊字符验证
- JSON Javascript特殊字符如何获取值