2014-10-30 22 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}