2016-05-25 104 views
-1

我想寫一個自定義功能String.Prototype:的NodeJS,MySQL和UTF8

String.prototype.Apos = function() { 
     var string = this.innerHTML.toString(); 
     return string.replace(/’/g,"'").replace(/“|â€/g,'"'); 
    }; 

我真的只是想使用JavaScript,但使用decodeURIComponent不會工作,所以我寫了一個UTF8字符串到瀏覽器剛剛採取了自己替換撇號。

所以從我見過的例子中我寫了上面的函數,但是它似乎沒有返回任何東西。當我運行以下命令:

$("span").html(string.Apos);

我沒有得到迴應。我從來沒有寫過一個定製原型函數,所以有人可以幫我解決問題,告訴我哪裏出錯了?

+0

嘗試執行'集名稱utf8'查詢mysql的連接之後。 –

+0

重複的http://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work –

回答

0

你真的需要弄亂string.prototype嗎?

您可以編寫一個函數來執行您想要執行的特定作業,即替換文本。

function replaceQuotes(i, oldHtml) { 
    return oldHtml.toString().replace(/’/g,"'").replace(/“|â€/g,'"'); 
} 

然後:

$("span").html(replaceQuotes); 
+0

不,我不這樣做,但它似乎是常用的,我想了解它是如何工作的。我的嘗試似乎打電話,我不知道爲什麼。 – Chud37

+0

如果您希望所有字符串對象都可以作爲方法訪問函數,那麼您希望將函數附加到string.prototype。你的用例非常特殊,我懷疑所有字符串對象都有這個方法是有意義的。 –