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

这里即时通讯尝试在第一个如果条件即下面做以下事情。如果(disk.isLinux):
1.应该有最小的3个字符
2.第一个字符应为/
3.整个输入不应该匹配 “的/ usr”。但它可以是/我们或/ USRA为什么不这个Javascript正则表达式工作

+0

你能postr应该配什么一些例子,什么不应该? – nana 2012-02-28 14:47:29

+0

除了像/ usr,/ root等默认的linux目录之外......其他至少有3个字符,并以/开头的任何内容都是有效的输入 – Pradeep 2012-02-28 14:50:42

+0

那么,这里有什么不起作用? – 2012-02-28 14:51:28

回答

0

几件事情:

1)瓦尔应该永远不里面的if语句

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

但更重要的是,你不需要正则表达式的所有

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

如果你只是想测试是否匹配,我们的正则表达式测试:

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

这是你正在尝试做什么?

+1

谢谢你们的支持 return“^ /”+ existing +“(?!usr $)[a-zA-Z] {0, } $“; - 这工作。 – Pradeep 2012-02-28 15:42:01

0

试着改变你的代码中使用:

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