javascript
  • python
  • escaping
  • ascii
  • 2017-03-17 7 views 0 likes 
    0

    私はJavascriptを含まHTLMページを生成するPythonスクリプトを持っています。Pythonの内のJavascript内のASCII復帰文字が改行と「終端されていない文字列のエラー」として表示

    はPythonでは、私はJavascriptを含む文字列を定義します。

    Javascriptが改行文字を定義する必要があります。

    私は3種類の方法を試みた:

    ScriptHTML = """ 
    <script type="text/javascript"> 
        var RetChar = '\x0D'; 
        var RetChar2 = '\r'; 
        var RetChar3 = '\\\r'; 
    
        var MyString1 = 'ABC' + RetChar; 
        var MyString2 = '123' + RetChar; 
    
    </script> 
    """ 
    
    def Main(): 
        print "Content-type: text/html\n" 
        print ScriptHTML 
    

    を、私は、生成されたHTMLを見ると、私は復帰を意味すると解釈されていることを参照してください。引用符の間に改行を入れて。

    私にJavaScriptエラーを取得します
    var RetChar = ' 
    ' 
    var RetChar2 = ' 
    ' 
    var RetChar3 = ' 
    ' 
    

    "SyntaxError: unterminated string literal" 
    

    どのように私はこの問題を解決することができますか?

    私はまた、TAB文字のためのソリューションをしてください必要があります。

    +2

    それはあなたが唯一のスラッシュをエスケープする必要があり、二重スラッシュr' \\ 'ASCII値を経由して、それを変換するか、または行うには、'に、String.fromCharCode()を '使用することができ、rはコードに正常に印刷する必要があり、出力に直接変換されますそれはjavascriptでのみエスケープされます。 – MiltoxBeyond

    +0

    String.fromCharCode(13)が機能しました。答えとして投稿してください。私はそれを受け入れることができます。ありがとう。 –

    答えて

    1

    あなたは、Pythonで処理されてからのエスケープコードを保持リテラル生の文字列を使用する必要があります。

    ScriptHTML = r""" 
    <script type="text/javascript"> 
        var RetChar = '\r'; 
        var MyString1 = 'ABC' + RetChar; 
        var MyString2 = '123' + RetChar; 
    
    </script> 
    """ 
    
    def Main(): 
        print "Content-type: text/html\n" 
        print ScriptHTML 
    

    また、簡単RetCharの定義の後var TabChar = '\t'を置くことによって、タブ文字を追加することができます。

    +0

    それもうまくいく、ありがとう。私はMiltoxBeyond'sにあなたのソリューションを好むので、私はあなたのものを受け入れたものとしてマークします。 –

    関連する問題