2016-03-03 117 views
0

Heyy所有段落與JS

更換我非常新的JavaScript,但我好奇與網頁上的空間或沒有更換未知字符,一些搜索我八九不離十發現這段代碼。

 

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


最終目標僅用於腳本運行,從頁面中刪除所有 。

任何幫助將非常感激,謝謝堆。

+3

'文本= text.replace( '', ' ');'或'文本= text.replace(' \ uFFFD','「);' –

回答

2

這裏有一些評論可能會給你一些方向。

如果您感興趣的段落($('#paragraph'))實際上有字符在裏面,那麼您正在朝着正確的方向移動。但是,也可能是因爲您的特定頁面無法理解的各種字符,並且只是將鑽石中的問號顯示爲替代品。

例如,在下面的第一個代碼片段中,將三個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表示。在下面的代碼演示中,你可以忽略其他的東西(例如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 ***&#xFFFD;***&#xFFFD;***&#xFFFD;***</p>

+0

這可能是值得注意的是,在使用vanilla JS string.replace時,可以在正則表達式的末尾放置一個'g',這樣'.replace()'函數就可以替代第一次出現的內容。 – Thriggle

+0

謝謝@Thriggle。我最初討論了正則表達式,然後當我意識到時(基於對該問題的另一個評論),我可以使用unicode作爲一個常規字符串。但是,我暫時忘記了那會消除全球搜索和替換。所以,現在我已經討論過正則表達式了。再次感謝。 –

+0

謝謝你的回覆,沒有期待那個= P –