欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于javascript如何傳遞特殊字符

 更新時間:2015年11月30日 11:28:27   投稿:mrr  
在 JavaScript 中使用反斜杠來向文本字符串添加特殊字符,下面通過本篇文章給大家介紹javascript如何傳遞特殊字符,對js傳遞特殊字符相關內(nèi)容感興趣的朋友一起學習吧

在沒步入正軌之前,先給大家介紹JavaScript 特殊字符

你可以在 JavaScript 中使用反斜杠來向文本字符串添加特殊字符。

插入特殊字符

反斜杠用來在文本字符串中插入省略號、換行符、引號和其他特殊字符。

請看下面的 JavaScript 代碼:

var txt="We are the so-called "Vikings" from the north."
document.write(txt)

在 JavaScript 中,字符串使用單引號或者雙引號來起始或者結束。這意味著上面的字符串將被截為:We are the so-called。
要解決這個問題,就必須把在 "Viking" 中的引號前面加上反斜杠 (\)。這樣就可以把每個雙引號轉(zhuǎn)換為字面上的字符串。

var txt="We are the so-called \"Vikings\" from the north."
document.write(txt)

現(xiàn)在 JavaScript 就可以輸出正確的文本字符串了:We are the so-called "Vikings" from the north。

這是另一個例子:

document.write ("You \& me are singing!") 

上面的例子會產(chǎn)生以下輸出:

You & me are singing!

下面的表格列出了其余的特殊字符,這些特殊字符都可以使用反斜杠來添加到文本字符串中:

代碼 輸出
\' 單引號
\" 雙引號
\& 和號
\\ 反斜杠
\n 換行符
\r 回車符
\t 制表符
\b 退格符
\f 換頁符

背景:

今天在做一個任務時,用jquery的ajax傳遞一長串字符時,在后臺地驗證一直不成功,糾結時我了(那個字符串是隨機生成地,特長).查了一上午,原來是我生成地字符串中有+號,而在js傳遞地時候,會理解為是連接字符用地,到了后臺就將+號自動變?yōu)榭崭窳?,所以后臺地字符串和前臺生成地已經(jīng)不一樣了.

原因:

js后自動解析特殊字符,如+號為連接符,解析為空格,&為變量連接符,服務器端接受數(shù)據(jù)時&以后地數(shù)據(jù)不顯示等等.

解決辦法:

1、將字符放到form中,然后用js提交form表單到服務器.
2、將字符中地特殊字符替換成十六進制地字符,一些特殊字符與十六進制地對應關系:

+ 空格 / ? % & = #
%2b %20 %2f %3f %25 %26 &3d %23

str = str.replace(/\+/g,%2b); 將+號替換為十六進制

3、最簡單地一種,使用encodeuricomponent()函數(shù).  

  該方法不會對 ascii 字母和數(shù)字進行編碼,也不會對這些 ascii 標點符號進行編碼: - _ . ! ~ * ' ( ) .
其他字符(比如 :;/?:@&=+$,# 這些用于分隔 uri 組件地標點符號),都是由一個或多個十六進制地轉(zhuǎn)義序列替換地.

jQuery ajax特殊字符參數(shù)

在做ajax登錄時候遇到的一個問題,當傳入?yún)?shù)含有特殊字符,比如:“$'#@”等。參數(shù)傳遞會有問題,無法正確獲取。

$.ajax({
  url: '/user/login.ydd',
  type:'post',
  data:'name=abce&password=abcd&pwd',
  success: function(data){
  }
})

我要傳入的是用戶名為:abc,密碼為abcd&pwd的用戶登錄。但傳入后臺獲取參數(shù),會被password=abcd當作一個參數(shù)傳遞,&這個特殊將pwd分開了作為另一個參數(shù)解析了。

解決方法,這時候就需要ajax另外一種傳遞參數(shù)的方式

$.ajax({
  url: '/user/login.ydd',
  type:'post',
  data:{'name':'abce','password':'abcd&pwd'},
  success: function(data){
 
  }
})

相關文章

最新評論