声明
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