Удаление некоторых символов из строки - PullRequest
1 голос
/ 31 июля 2010

Я пытаюсь удалить некоторые небезопасные символы из строки, но я считаю, что у меня проблема с моим объектом RegExp.

То, что я пытаюсь сделать ниже, - это если есть символы с кодированной длиной больше 3 символов, их следует заменить пробелом.

Так что, если закодированное значение %3D, что является знаком =, это нормально иметь в моей строке. Но если это апостроф %E2%80%99, его следует заменить пробелом.

val = "Angelina’s";
valEnc = encodeURIComponent(val);

for(var i = 0; i < val.length; i++){
    var a = val.substr(i,1);
    if(encodeURIComponent(a).length > 3){
        console.log(a, encodeURIComponent(a));
        var re = new RegExp(encodeURIComponent(a),"ig");
        valEnc.replace(re," ");
    };
};

console.log(decodeURIComponent(valEnc));

Этот код работает и регистрирует нежелательные символы, но не может заменить их пробелами. Что я делаю не так? Спасибо.

1 Ответ

2 голосов
/ 31 июля 2010

Вы, кажется, используете здесь регулярные выражения без необходимости. Один из способов сделать это - создать результирующую строку по одному символу за раз:

val = "Angelina’s";
valEnc = "";

for(var i = 0; i < val.length; i++){
    var a = val.substr(i,1);
    var e = encodeURIComponent(a);
    if(e.length <= 3){
        valEnc += e;
    }
}

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