2016-05-20 74 views
0

私はEJSとNode.jsを使ってフォームを開発しています。EJS/Javascript:キャリッジリターン&改行Javascript

var srDescription = '<%= Description %>'; 

しかし、次のように私は変数に、データベースからこのフィールドを読み、JavaScriptコードで

,11-111-1111 ,Nurse ,Mobile Phone , , , , ,ABCD - LAB - User unable to see patient name in pending inquiry in Pat 
Taha St reporting, she can see everything else but patient name in pending inquiry 

:私は、例えば次の文字列を持つデータベースからテキストフィールドを拾います

VM5484:68 Uncaught SyntaxError: Unexpected token ILLEGALx.extend.globalEval @ jquery-2.0.2.min.js:4x.fn.extend.domManip 
@ jquery-2.0.2.min.js:5x.fn.extend.append @ jquery-2.0.2.min.js:5(anonymous function) 
@ jquery-2.0.2.min.js:5x.extend.access @ jquery-2.0.2.min.js:4x.fn.extend.html 
@ jquery-2.0.2.min.js:5$.ajax.success 
@ app.js:1863l @ jquery-2.0.2.min.js:4c.fireWith @ jquery-2.0.2.min.js:4k 
@ jquery-2.0.2.min.js:6(anonymous function) @ jquery-2.0.2.min.js:6 

調査:

私のJavascriptがChromeデベロッパーツールでは、次のスタックを破ります

生の文字列&を持ついくつかのテストでは、これは復帰改行文字(CRLF)

がある場合にのみ、私は運で次のことを試してみました壊すことを私を見つけました:

'<%= Description %>'.replace(/\r?\n\s*/g,''); 

行う方法私はJavascriptが壊れないようにこれらの文字をエスケープしますか?

+0

なぜこれがダウンリストされましたか? :/ – Rookie

答えて

0

ejs-shrinkのようなプラグインを使用して、空白をクリーンアップしたり、独自のソリューションを実装することができます。しかし、この場合は、サーバー側でデータを消毒するというソリューションがあると思います。

+0

私のために働いたサーバー側のデータを消毒しました。消毒するために、私は質問に与えられたものと同じ正規表現を使用した – Rookie

関連する問題