[英]avoid to escape a special characters in javascript
我的服務器返回值為support\\testing
。 當我在客戶端獲得這個值時,它可以作為support testing
進行轉義。 \\t
被轉義為制表符空間。
如何避免在 JavaScript 中轉義特殊字符?
您的服務器需要以正確的轉義方式輸出字符串。
在這種情況下,您需要在輸出中使用反斜杠字符; 反斜杠是一個特殊字符,因此應該對其進行轉義。
反斜杠的轉義序列是\\\\
(即兩個反斜杠),但您不需要考慮特定的轉義碼——如果您正在輸出 JS 數據,您應該使用整個字符串的正確轉義來輸出它,這通常意味着您應該使用 JSON 編碼。
如今,大多數服務器語言都提供 JSON 編碼作為內置功能。 您還沒有指定您的服務器使用的是哪種語言,但例如,如果它是用 PHP 編寫的,您可以將字符串輸出為json_encode($string)
而不是直接輸出$string
。 其他語言提供了類似的功能。 這不僅可以保護您免受損壞的反斜杠字符,還可以防止其他錯誤,例如字符串中的引號或換行符,如果您將它們作為未轉義的字符串放入 Javascript 代碼中,也會導致錯誤。
您可以使用標記的模板文字
var str = (s => s.raw)`support\testing`[0]
匿名箭頭函數將作為標簽, s.raw
包含原始輸入
如果您能夠更改服務器端代碼,您應該在那里添加轉義字符: "support\\\\testing"
。
這將導致預期的結果。
你可以做一個簡單的替換:
str.replace("\t","\\t");
並為您需要替換的其他字符執行此操作。
最佳解決方案
function valid(f) {
debugger;
var s = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?~";
str = f.value;
for (var i = 0; i < str.length; i++) {
if (s.indexOf(str.charAt(i)) != -1) {
//alert("The box has special characters. \nThese are not allowed.\n");
f.value = f.value.replace(str.charAt(i), '');// : null;
return false;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.