2010-10-07 78 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

相关问题