我有一个文件名验证的正则表达式。这是:
/^[0-9a-zA-Z\^\&\'\@\{\}\[\]\,\$\=\!\-\#\(\)\.\%\+\~\_; ]+$/
如何更改它以检查文件名是否以.
符号开头。谢谢你的帮助。
答案 0 :(得分:6)
negative lookahead将是最简单的解决方案:
/^(?!\.)[0-9a-zA-Z^&'@{}[\],$=!\-#().%+~_; ]+$/
或者,您可以将第一个字符与额外的字符类匹配:
/^[0-9a-zA-Z^&'@{}[\],$=!\-#()%+~_; ][0-9a-zA-Z^&'@{}[\],$=!\-#().%+~_; ]*$/
^^ no dot here
顺便说一句,在character class内,几乎所有特殊字符都失去了它们的功能,不需要转义。