Javascript。匹配 - 排除?

时间:2014-10-30 21:07:10

标签: javascript

我有以下循环。

我需要提取其中没有包含字母lskey的所有名称(p),但我的尝试无效。

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 + "'/>");
    }
}

如果有人回答,我将不胜感激。

2 个答案:

答案 0 :(得分:3)

如此接近!在一个字符类中,^表示否定,但在它之外表示&#34;字符串的开头&#34;。

以下内容应该有效:

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

只需检查字符p,如果它不存在,则match()将返回null


也就是说,如果您不需要使用正则表达式,那么使用indexOf方法会更简单:

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

答案 1 :(得分:0)

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

如果要搜索的值永远不会发生,则此方法返回-1。

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