[英]JavaScript string declarations from dynamic data with unescaped quotation marks
我正在為內容管理系統編寫JavaScript模板,其中用戶填寫傳遞給我的模板的文本輸入字段。
我的問題是輸入字段中的引號在傳遞到我的模板之前不會轉義,因此我無法知道它們是包含單引號還是雙引號,甚至都包含引號。 無論用哪種方式處理數據,我的代碼最終都會中斷,因為引號會終止字符串聲明。 我想在數據上運行一個函數以轉義引號,但是我找不到一種首先將數據放入有效變量的方法。
有沒有辦法在不破壞字符串變量聲明的情況下安全地處理JavaScript中的數據?
編輯:我正在發布代碼示例;
CMS文本輸入字段的值是:誰將贏得我們的“大賽”?
文本輸入字段占位符宏為[%TextInput%]
我正在使用JS / HTML / CSS為此輸入構建HTML模板
<script>
(function(){
var textInputStr = "[%TextInput%]";
})();
</script>
如果TextInput的值包含單引號,則將破壞字符串聲明,反之亦然。
我想在數據上運行一個函數以轉義引號,但是我找不到一種首先將數據放入有效變量的方法。
好吧,您必須先使其成為有效的字符串文字, 然后才能在其上運行JavaScript函數。 沒有其他方法(除非您計算對模板腳本的ajax請求以獲取其字符串表示形式)。
輸入字段在傳遞到我的模板之前不會轉義
然后解決。 在JavaScript中,您無能為力。
這是一個了不起的問題,值得一提。 像大多數其他現代語言一樣,JS中的字符串沒有自定義定界符,因此您可能會陷入困境。 但是一種解決方案是構建一個帶有占位符的腳本標簽,然后找到該標簽的innerHTML並將字符串重新獲取到變量中。 例如
<script id="parseMe" type="text/template">
[%TextInput%]
</script>
然后使用
var yourString = document.getElementById("parseMe").innerHTML
現在,您可以根據需要操縱字符串。
HTH!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.