A. javascript字元串的轉換
1、如果手動轉的話,用replace()函數將字元替換成對應的字元。
2、js中有一個專門的轉16進制的編碼函數:encodeURI()
網址URL中特殊字元轉義編碼
字元 - URL編碼值
空格 - %20
" - %22
# - %23
% - %25
& - %26
( - %28
) - %29
+ - %2B
, - %2C
/ - %2F
: - %3A
; - %3B
< - %3C
= - %3D
> - %3E
? - %3F
@ - %40
\ - %5C
| - %7C
URL特殊字元轉義
URL中一些字元的特殊含義,基本編碼規則如下:
1、空格換成加號(+)
2、正斜杠(/)分隔目錄和子目錄
3、問號(?)分隔URL和查詢
4、百分號(%)制定特殊字元
5、#號指定書簽
6、&號分隔參數
如果需要在URL中用到,需要將這些特殊字元換成相應的十六進制的值
+ %2B
/ %2F
? %3F
% %25
# %23
& %26
由於在項目中經常要用AJAX傳SQL給後台服務端
會遇到select num+1 from al或者左右連接形式。總會丟掉(+)
這個時候可以嘗試用一下URL特殊字元轉義
用JS的encodeURI()函數或者直接改成相對應的十六進制的值
看網上介紹encodeURI函數也是講URI轉義
(轉自另外一個問題的回答:知道搜索條目--》網路的%符號是什麼意思)
由於度娘會吞鏈接,所以不妨鏈接了。
B. js解析json字元串報錯解決方案(帶有轉義字元的json字元串)
場景:從後台請求回來的數據中帶有json格式的字元串,需要處理成json對象才能進行操作。
JSON.parse():
使用JSON.parse方法來解析json字元串。
報錯: Uncaught SyntaxError: Unexpected token } in JSON at position 30
Uncaught SyntaxError: Unexpected token ' in JSON at position 1
這種報錯是由於,json字元串的格式有問題,json字元串中對象的最後一個元素後面不可以再加','逗號了。比如'{ "name": "cxh", "sex": "man",}'使用JSON.parse()就會報錯,而且 在json字元串中鍵值對需要用雙引號引起來。
解決方案:使用eval()
報錯:SyntaxError: Unexpected token e in JSON at position 1
由於請求回來的json中帶有轉義字元,所以才會報這個錯誤。
解決方案:帶有轉義字元的json字元串使用json
json數據使用JSON.parse()有瀏覽器是不兼容JSON這個對象的,或者有的裡面有JSON.parse解析不了的東西,所以暫時還是使用: eval("("+data+")");
json源數據字元有轉義符應該是必須的,你要看解析出來後是否有多餘的轉義符
json轉字元串JSON.stringify總體效果還可以:
前導 0 和小數點報錯:SyntaxError: JSON.parse: expected ',' or '}' after property value
SyntaxError: JSON.parse: unterminated fractional number
Uncaught SyntaxError: Unexpected number in JSON at position 25
Uncaught SyntaxError: Unexpected token } in JSON at position 26
數字不能用 0 開頭,比如01,並且你的小數點後面必須跟著至少一個數字。
C. js轉義字元使用問題
+"<td><a href=\"\">"+加錢+"</a></td>"//此處出錯報非法字元illegal character
+"<td><a href=\"\">"+結賬回+"</a></td>"
修改為答:
+"<td><a href=\"\">加錢</a></td>"//此處出錯報非法字元illegal character
+"<td><a href=\"\">結賬</a></td>"
D. js鏈接&被轉義了,要怎麼處理
默認情況下中文,空格,『&』等字元都會被瀏覽器自動轉義一次。
如果使用的轉義方法就是版js原生權自帶的encodeURIComponent方法進行轉義。
解決辦法:
可以讓後台的兄弟幫助多編譯一次。這樣就不會出現這個問題了。
可以自己編譯一次,用decodeURIComponent('%26')。
下面簡單的藐視一下decodeURIComponent() 這個方法:
定義和用法
decodeURIComponent() 函數可對 encodeURIComponent() 函數編碼的 URI 進行解碼。
語法
decodeURIComponent(URIstring)
參數
URIstring 必需。一個字元串,含有編碼 URI 組件或其他要解碼的文本。
返回值
URIstring 的副本,其中的十六進制轉義序列將被它們表示的字元替換。
E. 用js 可以恢復轉義的字元正常顯示嗎
可以,做一個json數據表,把正常字元和轉義字元一一對應,使用的時候查表就可以了
F. js 如何將轉義字元 轉回正常字元
用 unescape() 函數