2014-02-09 59 views
2

這個問題已經在此之前,有人問:撇號轉換爲'在樹枝

Question

但它並沒有解決我的問題。

我從撇號數據庫中的數據後,我把它用

c_name='{{company_name}}'; 
$("#company_name").val(c_name); 

它給結果的文本里面輸入像

一些孵化場&蝦'文化有限公司

所以我應用了問題的解決類似

c_name='{{company_name|raw}}'; 
$("#company_name").val(c_name); 

它給我的錯誤,如

SyntaxError: missing ; before statement 
c_name='some Hatchery & Shrimp's Culture ltd.'; 

只是蝦後」和S之前顯示錯誤。 顯然,字符串在實際結束之前結束並期待着一個;

所以我

c_name={{company_name|raw}}; 

SyntaxError: missing ; before statement 
c_name=some Hatchery & Shrimp's Culture ltd.; 

再次嘗試現在,它的只顯示出現第一個空格後的錯誤,在「H」之前,這種情況下

我的問題是如何處理在樹枝撇號?'| raw'對我造成問題。

+0

您是否嘗試用js代碼中的雙引號替換撇號?似乎它可以幫助。 – Darmen

+0

你的意思是這個c_name =「{{company_name | raw}}」; ?或替換功能?他們兩個都沒用。如果動態字符串包含任何雙引號,並且第二個字符串在字符串中存在多於一個撇號(如2/3撇號)時不起作用,那麼第一個字符將不起作用。 @達曼阿曼巴耶夫 – AtanuCSE

回答

8
c_name = '{{ company_name|e('js')|raw }}'; 

既然你在JavaScript方面的時候,你需要逃避的Javascript(然後添加raw以避免額外的自動轉義HTML)。

+2

你不需要原始過濾器,它不會再次逃脫,所以沒有什麼可以避免的。另外值得一提的是'e'是'escape'過濾器的簡稱。 – Maerlyn

+0

工作。謝謝:) – AtanuCSE

+1

@Maerlyn文檔中有不同的說法:*當使用自動轉義時,Twig嘗試不會雙重轉義變量__當自動轉義策略與escape__過濾器應用的策略相同*(強調添加) - http ://twig.sensiolabs.org/doc/filters/escape.html – deceze