2016-07-06 87 views
-1

替換代碼不能用於單引號,請幫助我。 有些地方它正在工作,有些地方不起作用。替換代碼的單引號不起作用

JavaScript代碼:

var demo = "Broadcasted on Zee TV from Monday to Friday, the Indian television soap opera Kumkum Bhagya has long been revolving around the mystery of Tanu’s pregnancy. Tanu, a cunning, sly and guileful character in the Kumkum Bhagya serial has been fooling Abhi, the rock star. She is actually pregnant with Nikhil, her ex-boyfriend, but claims to be the mother of Abhi’s child. Except Abhi, almost everyone in the show knows who Tanu is pregnant with. But, the mystery will remain unrevealed until Abhi knows the reality of Tanu’s pregnancy. The coming episodes of Kumkum Bhagya, Pragya's DNA disclosure is likely to reveal the secret."; 
var demo1 = demo.replace(/[']/g,";"); 
//alert(demo1); 
document.getElementById("hello").innerHTML = demo1; 

HTML代碼:

<div id="hello"> 
</div> 

請以此爲參考: https://jsfiddle.net/h3sujuLx/

+0

在示例文本和替換函數中不使用相同的字符。它們都是撇號,它們都有不同的字符代碼,所以函數找不到匹配。 – Nekomajin42

+0

但親愛的,我想要在同一個文檔中處理這兩個問題,因爲當我使用request.getParameter方法在java中獲取該字符串時,撇號從字符串中消失。 那麼,告訴我如何處理這個問題? –

+0

我認爲@Duncan的解決方案將起作用。 – Nekomajin42

回答

3

在您的字符串你有Unicode字符 '右單引號'也是一個撇號,但在你的正則表達式中,你有一個撇號,這是一個不同的字符。如果要更換兩個字符,你需要在你的正則表達式包括:

var demo1 = demo.replace(/['’]/g,";"); 

具體比較:Tanu’s(右單引號)和Pragya's(單引號)

爲了使這個容易鍵入可以使用unicode轉義序列而不是字符:

var demo1 = demo.replace(/['\u2019]/g,";"); 
+0

撇號不在html中顯示? –

+0

仔細看看字符串,這兩個字符看起來很相似,但它們並不完全相同。我添加了兩個單詞到我的答案剪切和粘貼您的問題,以便您可以更容易地比較.. – Duncan

+0

當我寫這個新的上面替換代碼在jsp頁面,當我檢查源代碼中,我得到替換(/ '/ g,「'」)而不是替換(/ ['']/g,「'」) –