Heyy所有段落與JS
更換我非常新的JavaScript,但我好奇與網頁上的空間或沒有更換未知字符,一些搜索我八九不離十發現這段代碼。
var text = $('#paragraph').text(); text = text.replace('0xFFFD', ' ');
最終目標僅用於腳本運行,從頁面中刪除所有 。
任何幫助將非常感激,謝謝堆。
Heyy所有段落與JS
更換我非常新的JavaScript,但我好奇與網頁上的空間或沒有更換未知字符,一些搜索我八九不離十發現這段代碼。
var text = $('#paragraph').text(); text = text.replace('0xFFFD', ' ');
最終目標僅用於腳本運行,從頁面中刪除所有 。
任何幫助將非常感激,謝謝堆。
這裏有一些評論可能會給你一些方向。
如果您感興趣的段落($('#paragraph')
)實際上有那字符在裏面,那麼您正在朝着正確的方向移動。但是,也可能是因爲您的特定頁面無法理解的各種字符,並且只是將鑽石中的問號顯示爲替代品。
例如,在下面的第一個代碼片段中,將三個unicode字符插入表中。第一個和最後一個是基於unicode表的預期字符。但是,中間行僅顯示問號,因爲它不知道如何表示指定的Unicode字符。如果代碼片段在不同的瀏覽器中表現不同,我還在這裏包含一個屏幕快照,顯示它在Firefox v44.0.2中的表現。
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>&#x0041;</td>
<td>A</td>
</tr>
<tr>
<td>&#0;</td>
<td>�</td>
</tr>
<tr>
<td>&#xFFFD;</td>
<td>�</td>
</tr>
</table>
如果做要真正取代問號字符,然後你被錯誤地寫replace
功能。您可以通過使用字符串搜索來替換該字符。您編寫替換函數的方式實際上會查找確切字符0xFFFD
,這可能不是您想要的。相反,你應該使用正確的unicode表示。在下面的代碼演示中,你可以忽略其他的東西(例如querySelector
等),它只是用來檢索和放回HTML內容。專注於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 ***�***�***�***</p>
這可能是值得注意的是,在使用vanilla JS string.replace時,可以在正則表達式的末尾放置一個'g',這樣'.replace()'函數就可以替代第一次出現的內容。 – Thriggle
謝謝@Thriggle。我最初討論了正則表達式,然後當我意識到時(基於對該問題的另一個評論),我可以使用unicode作爲一個常規字符串。但是,我暫時忘記了那會消除全球搜索和替換。所以,現在我已經討論過正則表達式了。再次感謝。 –
謝謝你的回覆,沒有期待那個= P –
'文本= text.replace( '', ' ');'或'文本= text.replace(' \ uFFFD','「);' –