基于javascript如何傳遞特殊字符
在沒步入正軌之前,先給大家介紹JavaScript 特殊字符
你可以在 JavaScript 中使用反斜杠來向文本字符串添加特殊字符。
插入特殊字符
反斜杠用來在文本字符串中插入省略號、換行符、引號和其他特殊字符。
請看下面的 JavaScript 代碼:
var txt="We are the so-called "Vikings" from the north." document.write(txt)
在 JavaScript 中,字符串使用單引號或者雙引號來起始或者結(jié)束。這意味著上面的字符串將被截為: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 | 換頁符 |
背景:
今天在做一個任務(wù)時,用jquery的ajax傳遞一長串字符時,在后臺地驗證一直不成功,糾結(jié)時我了(那個字符串是隨機生成地,特長).查了一上午,原來是我生成地字符串中有+號,而在js傳遞地時候,會理解為是連接字符用地,到了后臺就將+號自動變?yōu)榭崭窳?,所以后臺地字符串和前臺生成地已經(jīng)不一樣了.
原因:
js后自動解析特殊字符,如+號為連接符,解析為空格,&為變量連接符,服務(wù)器端接受數(shù)據(jù)時&以后地數(shù)據(jù)不顯示等等.
解決辦法:
1、將字符放到form中,然后用js提交form表單到服務(wù)器.
2、將字符中地特殊字符替換成十六進制地字符,一些特殊字符與十六進制地對應(yīng)關(guān)系:
| + | 空格 | / | ? | % | & | = | # |
| %2b | %20 | %2f | %3f | %25 | %26 | &3d | %23 |
str = str.replace(/\+/g,%2b); 將+號替換為十六進制
3、最簡單地一種,使用encodeuricomponent()函數(shù).
該方法不會對 ascii 字母和數(shù)字進行編碼,也不會對這些 ascii 標(biāo)點符號進行編碼: - _ . ! ~ * ' ( ) .
其他字符(比如 :;/?:@&=+$,# 這些用于分隔 uri 組件地標(biāo)點符號),都是由一個或多個十六進制地轉(zhuǎn)義序列替換地.
jQuery ajax特殊字符參數(shù)
在做ajax登錄時候遇到的一個問題,當(dāng)傳入?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當(dāng)作一個參數(shù)傳遞,&這個特殊將pwd分開了作為另一個參數(shù)解析了。
解決方法,這時候就需要ajax另外一種傳遞參數(shù)的方式
$.ajax({
url: '/user/login.ydd',
type:'post',
data:{'name':'abce','password':'abcd&pwd'},
success: function(data){
}
})
相關(guān)文章
javaScript產(chǎn)生隨機數(shù)的用法小結(jié)
這篇文章主要介紹了javaScript產(chǎn)生隨機數(shù)的用法小結(jié),包括JavaScript Math.random()內(nèi)置函數(shù) ,Js 隨機數(shù)產(chǎn)生6位數(shù)字的代碼,需要的朋友可以參考下2018-04-04
JavaScript數(shù)據(jù)類型及相互間的轉(zhuǎn)換規(guī)則
這篇文章主要介紹了JavaScript數(shù)據(jù)類型及相互間的轉(zhuǎn)換規(guī)則,文章通過圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
詳解Webpack loader 之 file-loader
這篇文章主要介紹了詳解Webpack loader 之 file-loader,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11
TypeScript聯(lián)合類型,交叉類型和類型保護
這篇文章主要介紹了TypeScript聯(lián)合類型,交叉類型和類型保護,聯(lián)合類型就是定義一些類型,定義的變量只需要滿足任意一種類型即可,交叉類型就是需要滿足所有類型,交叉類型使用,更多內(nèi)容我們來看看下面文章詳細內(nèi)容吧2021-12-12
JavaScript遍歷求解數(shù)獨問題的主要思路小結(jié)
數(shù)獨游戲非常流行,其規(guī)則就是1到9數(shù)字填入9*9宮格并要求每一行、每一列、每一個粗線(小型)宮內(nèi)的數(shù)字不重復(fù),對此我們來看一下JavaScript遍歷求解數(shù)獨問題的主要思路小結(jié)2016-06-06
JavaScript設(shè)計模式之工廠模式和抽象工廠模式定義與用法分析
這篇文章主要介紹了JavaScript設(shè)計模式之工廠模式和抽象工廠模式,結(jié)合實例形式分析了工廠模式的功能、定義、相關(guān)問題解決方法,并分析抽象工廠模式與工廠模式的不同之處,需要的朋友可以參考下2018-07-07

