javascript - 将段落中的 � 替换为 JS

标签 javascript jquery

大家好

我对 javascript 很陌生,但很好奇用空格或网页上的任何内容替换未知字符,通过一些搜索我找到了这段代码。


var text = $('#paragraph').text();
text = text.replace('0xFFFD', ' ');


最终目标只是运行一个脚本,从页面中删除所有 �。

非常感谢任何帮助,谢谢 Heaps。

最佳答案

这里有一些评论可能会给您一些指导。

如果您感兴趣的段落 ($('#paragraph')) 实际上包含 that 字符,那么您正在朝着正确的方向前进。但是,您的特定页面可能无法理解多种字符,而只是显示菱形中的问号作为替代。

例如,在下面的第一个代码片段中,三个 unicode 字符被插入到表中。第一个和最后一个是基于 unicode 表的预期字符。然而,中间行仅显示问号,因为它不知道如何表示指示的 unicode 字符。如果代码片段在不同的浏览器中表现不同,我还在这里提供了一个屏幕截图,显示了它在 Firefox v44.0.2 中的表现方式。

enter image description here

table {
  border-collapse: collapse;
}
td, th {
  border: solid black 1px;
  padding: 0.4em;
}
<table>
  <tr>
    <th>Unicode</th>
    <th>character represented</th>
  </tr>
  <tr>
    <td>&amp;#x0041;</td>
    <td>&#x0041;</td>
  </tr>
  <tr>
    <td>&amp;#0;</td>
    <td>&#0;</td>
  </tr>
  <tr>
    <td>&amp;#xFFFD;</td>
    <td>&#xFFFD;</td>
  </tr>
</table>

如果您确实想要实际替换该问号字符,那么您编写的replace函数不正确。您只需使用字符串搜索即可替换该字符。您编写替换函数的方式实际上会查找确切的字符0xFFFD,这可能不是您想要的。相反,您应该使用正确的 unicode 表示形式。在下面的代码演示中,您可以忽略其他仅用于检索和放回 HTML 内容的内容(例如 querySelector 等)。重点关注 JavaScript 代码的第二行,它显示了如何使用正确的 unicode 表示形式查找和替换特殊字符。

更强大的是,您可以使用正则表达式来搜索和替换文本。上面的示例将仅替换它找到的字符串的第一个实例。正则表达式的作用远不止于此,但对于初学者来说,它们可以找到并替换您正在寻找的模式的所有示例。学习正则表达式的一个起点是 Mozilla Developer Network (MDN) site 。该网站对正则表达式的描述如下:“正则表达式是用于匹配字符串中的字符组合的模式。”您无需将要查找的文本放在引号之间,而是将要查找的模式放在正斜杠之间。要搜索模式的所有实例,请在模式后添加“g”(表示“全局”)。请参阅下面的代码片段进行演示。使用正则表达式您还可以做更多的事情。

var text1 = document.querySelector("#A").innerHTML;
var text2 = text1.replace('\uFFFD', 'X');
var text3 = text1.replace(/\uFFFD/g, 'X');
document.body.appendChild(document.createElement("p")).innerHTML = text2;
document.body.appendChild(document.createElement("p")).innerHTML = text3;
<p id="A">"My text is ***&#xFFFD;***&#xFFFD;***&#xFFFD;***</p>

关于javascript - 将段落中的 � 替换为 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35761032/

相关文章:

javascript - 将数据插入数据库而不重新加载页面(PHP + Jquery)

javascript - 当 div opacity = 1 时加载一段代码

jquery - 无法将 jQuery gem 安装到 Rails

javascript - 使用 JavaScript/jQuery 获取以特定前缀开头的所有类名

javascript - 为什么d3图表超出了图表区域的边界?

javascript - 文件读取和流式传输有什么区别?

javascript - 使用数组中的值进行 jQuery 验证

javascript - 使用 jQuery 单击时垂直滚动 100%

javascript - 初始化谷歌地图而不可见= bug

javascript - 用于不同折​​线图的 jqplot 荧光笔