2014-10-31 32 views
0

我試圖通過JavaScript查找和替換字符串,但我的例程無法正常工作。我想有一些錯誤。請指導我在js例程中修復哪些內容。這是我的腳本。試圖通過javascript查找和替換字符串

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

定義'不工作' – Sprottenwels 2014-10-31 13:14:58

+0

不清楚....你想說什麼? – Thomas 2014-10-31 13:15:41

+0

你在被忽略的字符列表中有一個空字符串。這是預期的嗎? (在'*'和'+'之間) – strah 2014-10-31 13:16:32

回答

1

你快到了。 IgnoreChars是一個數組 - 不是字符串 - 所以它沒有charAt函數; 改變這一行:

​​

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

這裏有一個小提琴:http://jsfiddle.net/q0ztudLd/

+0

非常感謝你。 – Thomas 2014-10-31 13:20:29

+0

非常歡迎 – 2014-10-31 13:20:59

1

或者你可以使用正則表達式:

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

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

也許你可以試試這個:

IgnoreChars.charAt(j) 

charAt是一個字符串函數而不是數組函數。

IgnoreChars[j]它會工作。