2017-08-19 5 views
1

私は複数の言語をdotCMSに持っています。言語変数には、一重引用符または二重引用符を含めることができます。 javascriptでこの変数にアクセスするには、引用符で囲みます。Velocity.Quotesと言語変数の二重引用符

var text = "$ text.get( 'variable_name')";

しかし、変数に同じ引用符が含まれていると、jsコードがクラッシュします。 変数に/が含まれていると、通常のエクスプレッションも機能しません。 私はes5を使うので、テンプレート文字列はオプションではありません。

どうすればこの問題を解決できますか?

+0

可能な複製(https://stackoverflow.com/questions/19579748/escaping:

var text = "${text.get('variable_name').replace("\"","\\\")}"; 

dotCMSは何かのように、同様のjavascript-IFYユーティリティを提供しています-quotes-in-velocity-template) – user7294900

答えて

2

したがって、$ {text.get( 'variable_name')はjava.lang.Stringを返します。これは、すべてのstring.replace()メソッドとstring.replaceAll()メソッドにアクセスできることを意味します。以下は(テストされていない)例です。 [Velocityテンプレートでエスケープ引用符]の

var text = "$UtilMethods.javascriptify(${text.get('variable_name')})"; 
関連する問題