2015-11-27 27 views
0
regularExpression = '[\w]:\\.*'; 

function validate() { 
    debugger; 

    var regex = new RegExp(regularExpression); 
    var ctrl = document.getElementById('txtValue'); 

    if (regex.test(ctrl.value)) { 
    return true; 
    } else { 
    return false; 
    } 
} 

上面是我用來驗證輸入的目錄路徑的代碼。 Here是驗證器網站的鏈接,顯示C:\ or D:\D:\Abcd\List.odt的完美匹配。但是當我嘗試運行上面的JavaScript時,它失敗了。註冊驗證工作不在javascript中工作

+0

使用' '[\\ W]:\\ *。'' – Tushar

+0

@Tushar:可你他; p我的文件路徑REG前。同樣的問題如上 文件路徑REG例如:^(:[A-ZA-Z] \:|?\\\\ [。\ W \] + \\。\ w $] +)\\(?: [\ w] + \\)* \ w([\ w。])+ $ – user2998990

回答

4

當正則表達式串'[\w]:\\.*'是由JavaScript的正則表達式引擎解析,它將把\w作爲一個轉義字符和自\w有沒有特殊的含義爲轉義字符,它將作爲唯一w治療。

要解決這個問題,你需要躲避\這樣

var regularExpression = '[\\w]:\\.*'; 

或者使用正則表達式字面這樣

var regularExpression = /[\w]:\.*/; 

正如評論所指出的Cyrbil,字符類[\w]是僅與\w相同。因此,您可以放心地忽略圍繞\w的方括號。

+0

回答這樣的問題非常頻繁。你應該將它們標記爲重複項。 –

+0

而他正在試圖驗證一條路徑,也許建議一個正確的做法呢? – Cyrbil