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



我有以下regex

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

适用于fileNames,保证gifjpegpng的均可接受。然而,我想扩展这段代码,也检查fileNames,并确保它们不包含dangerous字符,如

!@#$%^&*()
  1. 我该怎么做?
  2. 如何将这些"替换"为"?

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

使用

:

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

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

你也可以删除不允许的字符:

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

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

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

我会单独做;首先使用regex来确保正确的扩展,然后在每个字符上使用普通的indexOf来测试字符串中的扩展。但是,您也可以使用JavaScript支持的向前看:

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

最新更新