2012-02-28 72 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)){ 
相關問題