文件和符号的正则表达式删除?

时间:2011-09-19 15:29:59

标签: javascript jquery regex

我有以下regex

/(\.|\/)(gif|jpe?g|png)$/i

适用于fileNames确保gifjpegpng的确认。但是,我想扩展此代码以检查fileNames并确保它们不包含dangerous字符,如

!@#$%^&*()
  1. 我该怎么做?
  2. 如何用“”?
  3. “替换”这些

3 个答案:

答案 0 :(得分:0)

最好只允许一组特定的字符而不是否定所有可能的危险字符,因为您可能不知道所有可能的危险字符。但是,您知道要允许的所有字符。

使用此:

/^\w+(\.|\/)(gif|jpe?g|png)$/i

这确保文件名仅包含非危险字符(字母,数字和_)。

您还可以删除不允许的字符:

name = name.replace(/[^\w.]+/g, '')

答案 1 :(得分:0)

只有当不存在任何不需要的字符时,此正则表达式才会匹配

/^[^!@#\$%\^&\*\(\)]*$/

答案 2 :(得分:0)

我实际上是分开做的;首先使用正则表达式来确保正确的扩展,然后在每个字符上使用普通的旧indexOf来测试字符串中的字符串。但是,您也可以使用JavaScript支持的前瞻:

/^(?!.*[!@#$%^&*()]).*(\.|\/)(gif|jpe?g|png)$/i