У меня есть регулярное выражение для проверки имен файлов. Вот он:Javascript regex для проверки имен файлов
/[0-9a-zA-Z\^\&\'\@\{\}\[\]\,\$\=\!\-\#\(\)\.\%\+\~\_ ]+$/
Это должно позволить имена файлов, как это:
aaa
aaa.ext
a#
A9#.ext
Следующие символы не допускаются \/: * ? \" < > |
Проблема заключается в том, что имена файлов, как *.txt
или /\kk
проходит проверку , Я выполняю проверку с помощью события keyup. Поэтому, когда я добавляю один дополнительный символ после того, как его не разрешают, он показывает, что все правильно.
Escape/with \ in rg1. По крайней мере, VS 2010 так считает. – noober
^(?! \.) (?! com [0-9] $) (?! con $) (?! lpt [0-9] $) (?! nul $) (?! prn $) [^ \ | \ * \? \\: <>/$ "] * [^ \. \ | \ * \? \\: <>/$"] + $ –
Спасибо @RyanWilliams за комментарий. Но я знаю способ создания файла в Windows с длинным именем файла, содержащим точку в конце имени файла и без расширения :) –