2010-10-07 33 views
2

我正在用jQuery構建文件管理器。 用戶可以創建文件夾並上傳文件。 我需要一個Regual表達式(javascript)來檢查輸入的文件夾名稱或上傳的文件名是否爲網絡保存。 (無特殊字符或允許使用空格)正則表達式用於清理文件和文件夾名稱

名稱應只包含字母數字值(包括AZ,az,0-9),下劃線(_)和破折號( - )

+1

你嘗試過什麼嗎?如果你學習了正則表達式並且這是一個基本的表達方式,那對你只有好處。這應該是一個開始:http://www.regular-expressions.info/ – 2010-10-07 11:51:50

+0

我強烈猜測這是一個常見問題解答!只要搜索'[正則表達式] +文件名+驗證' – splash 2010-10-07 11:52:21

+0

@ Felix Kling感謝您的提示!沒有時間學習它,但我會在不久的將來:) – Yens 2010-10-07 12:06:05

回答

4

這似乎很簡單:

/^[\w.-]+$/ 

Useful tutorial

+0

/^ [\ w \ - ] + $ /:你需要反斜槓的連字符 – 2010-10-07 11:52:59

+0

@Fabrizio:不,你不要 – SilentGhost 2010-10-07 11:54:00

+0

@Fabrizio:不是在一個捕獲組的結尾。 – 2010-10-07 11:54:00

8

不要打擾你的訪客,這樣做對他:)

var cleanName = function(name) { 
    name = name.replace(/\s+/gi, '-'); // Replace white space with dash 
    return name.replace(/[^a-zA-Z0-9\-]/gi, ''); // Strip any special charactere 
}; 

cleanName('C\'est être'); 
1
function clean(filename) { 
filename= filename.split(/[^a-zA-Z0-9\-\_\.]/gi).join('_'); 
return filename; 
}; 

filename=clean("Vis'it M'ic ro_pole!.pdf"); 
+0

感謝您的貢獻。如果你可以編輯你的答案並在你的解決方案上添加一個簡短的解釋,那將會很好。例如,@molokoloco提供的解決方案有什麼不同? – honk 2014-12-03 17:21:26