Sebelum kita berada di landasan yang betul, izinkan saya memperkenalkan aksara khas JavaScript kepada anda dahulu
Anda boleh menggunakan garis miring ke belakang dalam JavaScript untuk menambah aksara khas pada rentetan teks.
Sisipkan aksara khas
Sebatan ke belakang digunakan untuk memasukkan elips, baris baharu, petikan dan aksara khas lain dalam rentetan teks.
Sila lihat kod JavaScript di bawah:
var txt="We are the so-called "Vikings" from the north." document.write(txt)
Dalam JavaScript, rentetan menggunakan petikan tunggal atau berganda untuk memulakan atau menamatkan. Ini bermakna rentetan di atas akan dipotong kepada: Kami adalah yang dipanggil.
Untuk menyelesaikan masalah ini, anda mesti mendahului petikan dalam "Viking" dengan garis miring ke belakang (). Ini menukarkan setiap petikan berganda kepada rentetan literal.
var txt="We are the so-called \"Vikings\" from the north." document.write(txt)
JavaScript kini mengeluarkan rentetan teks yang betul: Kami adalah apa yang dipanggil "Viking" dari utara.
Ini satu lagi contoh:
document.write ("You \& me are singing!")
Contoh di atas menghasilkan output berikut:
You & me are singing!
Jadual berikut menyenaraikan baki aksara khas yang boleh ditambah pada rentetan teks menggunakan garis miring ke belakang:
Kod | Output |
---|---|
' | Petikan tunggal |
" | Petikan berganda |
& | Ampersan |
\ | Las belakang |
n | Pemutus talian |
r | Watak pemulangan kereta |
t | Tab |
b | Watak backspace |
f | Suapan halaman |
Latar belakang:
Apabila saya melakukan tugas hari ini, apabila saya menggunakan ajax jquery untuk menghantar rentetan aksara yang panjang, pengesahan di latar belakang sentiasa tidak berjaya (rentetan itu dijana secara rawak, satu kepakaran). sepanjang pagi, Ternyata terdapat nombor dalam rentetan yang saya hasilkan, dan apabila ia diluluskan oleh js, ia akan difahami sebagai watak sambungan, dan nombor itu akan ditukar secara automatik kepada ruang di latar belakang, jadi rentetan yang dijana di latar belakang adalah berbeza daripada rentetan yang dijana di meja depan .
Sebab:
Aksara khas dihuraikan secara automatik selepas js Contohnya, am ialah penyambung, dihuraikan sebagai ruang, & ialah penyambung berubah, dan apabila pelayan menerima data, data tidak akan dipaparkan selepas &, dsb.
Penyelesaian:
1. Letakkan aksara ke dalam borang, dan kemudian gunakan js untuk menyerahkan borang kepada pelayan.
2. Gantikan aksara khas dalam aksara dengan aksara perenambelasan. Persamaan antara beberapa aksara khas dan aksara perenambelasan:
Angkasa | / | ? | % | & | = | # | |
+ | / | ? | % | & | &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){ } })