为什么这个Javascript正则表达式不起作用

时间:2012-02-28 14:44:23

标签: javascript regex

var existing = "";   
if(disk.isLinux){   
    var valinvalid = "/usr" ;            
    var valinput = /^\/[a-zA-Z]{2,}/ ;  
    if(!valinput.match(valinvalid)){      
        return "^/" + existing + "[^/][a-zA-Z]{2,}[^/]$";
    } 
}

这里我试图在第一个if条件中执行以下操作即。如果(disk.isLinux):
1.至少应有3个字符
2.第一个字符应为/
3.整个输入不应与“/ usr”匹配。但它可以是/ us或/ usra

3 个答案:

答案 0 :(得分:1)

如果你只是想测试它是否匹配,我们测试regexp:

/^\/[\w]{2,}/.test("/usr/");     //true

这是你想要做的吗?

答案 1 :(得分:0)

有几件事:

1)如果陈述

,vars永远不应该在里面

2)String.prototype.match存在RegExp.prototype.match不

但更重要的是,你根本不需要regEx

if (
 input.length < 3 ||
 input.charAt(0) !== '/' ||
 input === '/user'
) {
 throw new Error("I'm not happy with the input");
}

答案 2 :(得分:0)

尝试更改您要使用的代码:

var valinput = new RegExp("/^\/[a-zA-Z]{2,}/") ;  
 if(!valinput.test(valinvalid)){