2014-09-06 2 views
0

Я хочу заменить все специальные символы в ASCII-%. Как этот список:Как заменить все специальные символы с помощью javascript

? -> %3F 
! -> %21 
... 

До сих пор я заменил 2 специальных символов. Но я не знаю простого метода для замены всех специальных символов.

Это мой код:

var replacer1 = new RegExp("\\?", "g"); 
var replacer2 = new RegExp("/", "g"); 
var q = ((query).replace(replacer1, "%3F")).replace(replacer2, "%2F"); 
+0

Посмотрите на ['encodeURI'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI) и [' encodeURIComponent'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent) – Volune

+0

только encodeURIComponent будет кодировать? персонаж. Не будет кодировать! персонаж. – ne1410s

+0

Вы можете использовать 'encodeURI' для кодирования для большинства ваших персонажей; для остальных из них вы можете запустить регулярное выражение! – Sayed

ответ

1

Похоже, что вы пытаетесь сделать, это URL кодировать ваши специальные символы просто использовать функции:

  • encodeURIComponent
  • encodeURI

в зависимости от того, кодируете ли вы весь URL-адрес или только компонент. например

encodeURIComponent("as686sa8d6sa8787^%^%$^£$%£$%"); 
//Output: "as686sa8d6sa8787%5E%25%5E%25%24%5E%C2%A3%24%25%C2%A3%24%25" 
0

Хотя осуждается, метод escape('myString'); будет делать эту работу и обслуживать как? а также ! символы

Смежные вопросы