试图通过javascript查找和替换字符串

时间:2014-10-31 13:13:50

标签: javascript debugging

我试图通过JavaScript查找和替换字符串,但我的例程不起作用。我想有一些错误。请指导我在js例程中修复什么。这是我的剧本。

function ReplaceChars(srcString)
{
    var IgnoreChars = ['<', '>',':', '/', '?', '#', '[', ']', '@', '!', '$', '&', '(', ')', '*', '', '+', ',', ';', '=', ']', ';'];
    for (i = 0; i < srcString.length; i++) {
        for (j = 0; j < IgnoreChars.length; j++) {
            if (srcString.charAt(i) == IgnoreChars.charAt(j))
            {
                srcString=srcString.replace(srcString.charAt(i), '');
            }
        }
    }
    return srcString;
}

var str = '<name>';
alert(ReplaceChars(str));

3 个答案:

答案 0 :(得分:1)

你快到了。 IgnoreChars是一个数组 - 不是String - 所以它没有charAt函数; 改变这一行:

 if (srcString.charAt(i) == IgnoreChars.charAt(j))

 if (srcString.charAt(i) == IgnoreChars[j])

这是一个小提琴:http://jsfiddle.net/q0ztudLd/

答案 1 :(得分:1)

或者您可以使用RegEx:

var str = "<name>";
var reg = /[<>:\/?#\[\]@!]/g
//add more characters to the RegEx

var newStr = str.replace(reg, "");
console.log(newStr);

答案 2 :(得分:0)

也许你可以试试这个:

IgnoreChars.charAt(j)

charAt是一个字符串函数,而不是数组函数。

使用IgnoreChars[j]即可。