亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于javascript如何傳遞特殊字符

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

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

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

插入特殊字符

反斜杠用來(lái)在文本字符串中插入省略號(hào)、換行符、引號(hào)和其他特殊字符。

請(qǐng)看下面的 JavaScript 代碼:

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

在 JavaScript 中,字符串使用單引號(hào)或者雙引號(hào)來(lái)起始或者結(jié)束。這意味著上面的字符串將被截為:We are the so-called。
要解決這個(gè)問(wèn)題,就必須把在 "Viking" 中的引號(hào)前面加上反斜杠 (\)。這樣就可以把每個(gè)雙引號(hào)轉(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。

這是另一個(gè)例子:

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

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

You & me are singing!

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

代碼 輸出
\' 單引號(hào)
\" 雙引號(hào)
\& 和號(hào)
\\ 反斜杠
\n 換行符
\r 回車(chē)符
\t 制表符
\b 退格符
\f 換頁(yè)符

背景:

今天在做一個(gè)任務(wù)時(shí),用jquery的ajax傳遞一長(zhǎng)串字符時(shí),在后臺(tái)地驗(yàn)證一直不成功,糾結(jié)時(shí)我了(那個(gè)字符串是隨機(jī)生成地,特長(zhǎng)).查了一上午,原來(lái)是我生成地字符串中有+號(hào),而在js傳遞地時(shí)候,會(huì)理解為是連接字符用地,到了后臺(tái)就將+號(hào)自動(dòng)變?yōu)榭崭窳耍院笈_(tái)地字符串和前臺(tái)生成地已經(jīng)不一樣了.

原因:

js后自動(dòng)解析特殊字符,如+號(hào)為連接符,解析為空格,&為變量連接符,服務(wù)器端接受數(shù)據(jù)時(shí)&以后地?cái)?shù)據(jù)不顯示等等.

解決辦法:

1、將字符放到form中,然后用js提交form表單到服務(wù)器.
2、將字符中地特殊字符替換成十六進(jìn)制地字符,一些特殊字符與十六進(jìn)制地對(duì)應(yīng)關(guān)系:

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

最新評(píng)論