2008-10-13 13:24:00
js报错(Error: unterminated stringliteral),原因是字符串中包含换行符,需要用javascript替换换行符,兼容IE和Firefox的正确方法是,使用正则并且把\r和\n分开替换:
str.replace(/\r/ig, “”).replace(/\n/ig, “”);
需要注意的是:
1. javascript的replace只能替换一次,替换所有需要用到正则。
2. str.replace(/\r\n/ig, “”) 只适用于IE,Firefox和Opera并不起作用。
例子:
view plaincopyto clipboardprint?<br>
<span style="color: #339933;"><</span>
script type<span style="color: #339933;">=</span>
<span style="color: #3366cc;">"text/javascript"</span>
<span style="color: #339933;">></span>
<br>
<span style="font-weight: bold; color: #003366;">var</span>
s <span style="color: #339933;">=</span>
document.<span style="color: #006600;">getElementById</span>
<span style="color: #009900;">(</span>
<span style="color: #3366cc;">'txt'</span>
<span style="color: #009900;">)</span>
.<span style="color: #006600;">value</span>
<span style="color: #339933;">;</span>
<br>
<span style="color: #000066;">alert</span>
<span style="color: #009900;">(</span>
s<span style="color: #009900;">)</span>
<span style="color: #339933;">;</span>
<br>
<span style="font-weight: bold; color: #003366;">var</span>
r <span style="color: #339933;">=</span>
s.<span style="color: #006600;">replace</span>
<span style="color: #009900;">(</span>
<span style="color: #009966; font-style: italic;">/\r/ig</span>
<span style="color: #339933;">,</span>
<span style="color: #3366cc;">""</span>
<span style="color: #009900;">)</span>
.<span style="color: #006600;">replace</span>
<span style="color: #009900;">(</span>
<span style="color: #009966; font-style: italic;">/\n/ig</span>
<span style="color: #339933;">,</span>
<span style="color: #3366cc;">""</span>
<span style="color: #009900;">)</span>
<span style="color: #339933;">;</span>
<br>
<span style="color: #000066;">alert</span>
<span style="color: #009900;">(</span>
r<span style="color: #009900;">)</span>
<span style="color: #339933;">;</span>
<br>
<span style="color: #339933;"></</span>
script<span style="color: #339933;">><br>
<br>
<br>
\r 是回车 , \n是换行 , \r\n在win下是换行</span>