Maison  >  Article  >  interface Web  >  Comment transmettre des caractères spéciaux en fonction des astuces javascript_javascript

Comment transmettre des caractères spéciaux en fonction des astuces javascript_javascript

WBOY
WBOYoriginal
2016-05-16 15:28:431204parcourir

Avant de nous mettre sur la bonne voie, permettez-moi d'abord de vous présenter les caractères spéciaux JavaScript

Vous pouvez utiliser des barres obliques inverses en JavaScript pour ajouter des caractères spéciaux aux chaînes de texte.

Insérer des caractères spéciaux

Les barres obliques inverses sont utilisées pour insérer des points de suspension, des nouvelles lignes, des guillemets et d'autres caractères spéciaux dans les chaînes de texte.

Veuillez consulter le code JavaScript ci-dessous :

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

En JavaScript, les chaînes utilisent des guillemets simples ou doubles pour commencer ou terminer. Cela signifie que la chaîne ci-dessus sera tronquée à : Nous sommes les soi-disant.
Pour résoudre ce problème, vous devez faire précéder les guillemets dans "Viking" d'une barre oblique inverse (). Cela convertit chaque guillemet double en une chaîne littérale.

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

Le JavaScript affiche désormais la chaîne de texte correcte : Nous sommes les soi-disant "Vikings" du nord.

Voici un autre exemple :

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

L'exemple ci-dessus produit le résultat suivant :

You & me are singing!

Le tableau suivant répertorie les caractères spéciaux restants qui peuvent être ajoutés aux chaînes de texte à l'aide de barres obliques inverses :

Code Sortie
' Citations simples
" Guillemets doubles
& Esperluette
\ Barre oblique inverse
n Saut de ligne
r Caractère retour chariot
t Onglet
b Caractère de retour arrière
f Flux de page

Contexte :

Quand je faisais une tâche aujourd'hui, lorsque j'utilisais l'ajax de jquery pour transmettre une longue chaîne de caractères, la vérification en arrière-plan échouait toujours (la chaîne était générée aléatoirement, une spécialité après l'avoir vérifiée). toute la matinée, il s'avère qu'il y a un nombre dans la chaîne que j'ai générée, et lorsqu'il sera passé par js, il sera compris comme un caractère de connexion, et le nombre sera automatiquement remplacé par un espace en arrière-plan, donc le la chaîne générée en arrière-plan est différente de la chaîne générée à la réception.

.

Raison :

Les caractères spéciaux sont automatiquement analysés après js. Par exemple, am est un connecteur, analysé comme un espace, & est un connecteur de variable, et lorsque le serveur accepte les données, les données ne seront pas affichées après &, etc.

Solution :

1. Mettez les caractères dans le formulaire, puis utilisez js pour soumettre le formulaire au serveur.
2. Remplacez les caractères spéciaux dans les caractères par des caractères hexadécimaux. La correspondance entre certains caractères spéciaux et des caractères hexadécimaux :

.

Espace / ? % & = #
+ / ? % & &3d #

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){
 
  }
})
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn