从字符串中删除一些字符

时间:2010-07-30 22:33:47

标签: javascript regex string

我尝试从字符串中删除一些非安全字符,但我相信我的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 个答案:

答案 0 :(得分:2)

您似乎在这里不必要地使用正则表达式。一种方法是一次为一个字符构建结果字符串:

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));