2014-10-30 20 views
0

我有下面的循環。Javascript .match - 排除?

我需要將其中沒有包含字母p的所有名稱(lskey)拉進去,但我的嘗試不起作用。

for(var i = 0; i < localStorage.length; i++) { 
    var lsKey = localStorage.key(i); 
    var lsValue = localStorage.getItem(localStorage.key(i)); 
    if(lsKey.match("^p")) { 
     $("#appendedLS").append("<input type='hidden' name='" + lsKey + "' value='" + lsValue + "'/>"); 
    } 
} 

如果有人有答案,我將不勝感激。

回答

3

太近了!在字符類中,^意味着否定,但它之外意味着「字符串的開始」。

下面應該工作:

if(lsKey.match("p") === null){ 

只是檢查字符p,如果不存在,那麼match()將返回null


這就是說,如果你不需要使用正則表達式那麼它更易於使用的indexOf方法代替:

if(lsKey.indexOf("p") == -1){ 
0

的的indexOf()方法返回第一次出現的位置字符串中的指定值。

如果搜索的值永遠不會發生,則此方法返回-1。

if(lsKey.indexOf("p")==-1){ 
     //statement}