DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 基於javascript如何傳遞特殊字符
基於javascript如何傳遞特殊字符
編輯:關於JavaScript     

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

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

插入特殊字符

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

請看下面的 JavaScript 代碼:

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

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

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

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

這是另一個例子:

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

上面的例子會產生以下輸出:

You & me are singing!

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

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

背景:

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

原因:

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

解決辦法:

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

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

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

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

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

jQuery ajax特殊字符參數

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

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

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

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

$.ajax({
  url: '/user/login.ydd',
  type:'post',
  data:{'name':'abce','password':'abcd&pwd'},
  success: function(data){
 
  }
})
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved