聲明
coment = coment.replace(/\\n/gi,"*#*");
...說「替換爲反斜線後面的字母n與#字符串的所有部分(不區分大小寫)。如果你的目標是取代換行符,你有一個太多的反斜槓:
coment = coment.replace(/\n/gi,"*#*");
這本身就不會是問題,雖然從錯誤信息,這聽起來好像有時coment
不是ST環,因此沒有replace
功能。可能是undefined
或null
。如果你知道這將是undefined
,null
,或字符串,你可以這樣做:
if (coment) {
coment = coment.replace(/\n/gi,"*#*");
}
如果它可能是一些什麼,也不管你總是希望一個字符串到底,則:
coment = (coment === undefined || coment === null)
? ""
: String(coment).replace(/\n/gi,"*#*");
(不要只是做coment = coment ? ...
因爲如果coment
是多少0
,不會給你預期的結果。)
由於某些瀏覽器對於換行符使用
\r\n
,而其他瀏覽器使用
\n
,所以在正則表達式中,您最好使用
\r?\n
(或
\r{0,1}\n
)而不是
\n
。
'coment'從哪裏來?你可以在[jsfiddle](http://jsfiddle.net)中重現這個嗎? – 2012-01-30 16:53:43