我有以下regex
/(.|/)(gif|jpe?g|png)$/i
适用于fileNames
,保证gif
、jpeg
、png
的均可接受。然而,我想扩展这段代码,也检查fileNames
,并确保它们不包含dangerous
字符,如
!@#$%^&*()
- 我该怎么做?
- 如何将这些"替换"为"?
最好只允许一组特定的字符,而不是拒绝所有可能的危险字符,因为您可能不知道所有可能的危险字符。然而,你知道,所有你想要允许的字符。
使用:
/^w+(.|/)(gif|jpe?g|png)$/i
这确保文件名只包含非危险字符(字母、数字和_)。
你也可以删除不允许的字符:
name = name.replace(/[^w.]+/g, '')
这个正则表达式只有在不存在任何不需要的字符时才会匹配
/^[^!@#$%^&*()]*$/
我会单独做;首先使用regex来确保正确的扩展,然后在每个字符上使用普通的indexOf
来测试字符串中的扩展。但是,您也可以使用JavaScript支持的向前看:
/^(?!.*[!@#$%^&*()]).*(.|/)(gif|jpe?g|png)$/i