我有以下regex
/(\.|\/)(gif|jpe?g|png)$/i
适用于fileNames
确保gif
,jpeg
和png
的确认。但是,我想扩展此代码以检查fileNames
并确保它们不包含dangerous
字符,如
!@#$%^&*()
答案 0 :(得分:0)
最好只允许一组特定的字符而不是否定所有可能的危险字符,因为您可能不知道所有可能的危险字符。但是,您知道要允许的所有字符。
使用此:
/^\w+(\.|\/)(gif|jpe?g|png)$/i
这确保文件名仅包含非危险字符(字母,数字和_)。
您还可以删除不允许的字符:
name = name.replace(/[^\w.]+/g, '')
答案 1 :(得分:0)
只有当不存在任何不需要的字符时,此正则表达式才会匹配
/^[^!@#\$%\^&\*\(\)]*$/
答案 2 :(得分:0)
我实际上是分开做的;首先使用正则表达式来确保正确的扩展,然后在每个字符上使用普通的旧indexOf
来测试字符串中的字符串。但是,您也可以使用JavaScript支持的前瞻:
/^(?!.*[!@#$%^&*()]).*(\.|\/)(gif|jpe?g|png)$/i