Javascript экранировать специальные символы, кроме не на английском - PullRequest
0 голосов
/ 23 июня 2011

У меня проблема с неэкранированием неанглийских символов.

Например,

var text1 = "ABC Farmacéutica Corporation".
text1 = escape(text1);

output: ABC%20Farmac%E9utica%20Corporation 

Но я бы хотел избегать только специальных символов, кроме неанглийских символов, таких как é. Есть ли у нас логика для игнорирования этих символов?

Пожалуйста, помогите, заранее спасибо.

1 Ответ

1 голос
/ 23 июня 2011

Функция escape возвращает текст, экранированный в формате Unicode.Пробел представлен как% 20 (шестнадцатеричный).Если я вас правильно понимаю, вы не хотите убегать, в данном случае только символ пробела.Единственный способ увидеть это возможно - у вас есть таблица, содержащая те неанглийские символы, которые вы не хотите экранировать, и ссылаетесь на нее.Примерно так:

var dontEscape = "éöå....and_so_on";
var text = "ABC Farmacéutica Corporation";
var escaped = "";
for (var i = 0; i < text.length; i++) {
  var test = text.substring(i, i+1); // charAt is unsafe with unicode chars
  escaped = test.indexOf(test.toLowerCase()) == -1 ? escape(test) : test;
}

Есть ли какая-то особая причина, по которой вы хотите выборочно экранировать символы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...