Javascript regex zur Validierung von Dateinamen
Habe ich eine regexp zur überprüfung von Datei-Namen. Hier ist es:
/[0-9a-zA-Z\^\&\'\@\{\}\[\]\,\$\=\!\-\#\(\)\.\%\+\~\_ ]+$/
Es ermöglichen sollte, die Datei-Namen wie folgt:
aaa
aaa.ext
a#
A9#.ext
Folgende Zeichen sind nicht erlaubt \ /: * ? \" < > |
Das problem ist, dass die Datei-Namen wie *.txt
oder /\kk
übergibt die Validierung. Ich mache die Validierung mit keyup-Ereignis ein. Also wenn ich einen extra-Charakter nach nicht zulässig, es zeigt, dass alles korrekt ist.
die akzeptierte Antwort behoben regex, aber dein regex ist nicht korrekt für die überprüfung von Windows-Dateinamen. siehe hier
InformationsquelleAutor Rafael Sedrakyan | 2012-06-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie ein Start-Anker:
Dieser erzählt die dazu passenden Motor aus der start-Eingang den ganzen Weg, um das Ende der Eingabe, in der Erwägung, dass für den ursprünglichen Ausdruck, es muss nur passend an das Ende der Eingabe.
InformationsquelleAutor Mattias Buelens
Für Windows-Namen.
^(?!\.)(?!com[0-9]$)(?!con$)(?!lpt[0-9]$)(?!nul$)(?!prn$)[^\|*\?\\:<>/$"]*[^\.\|*\?\\:<>/$"]+$
Danke @RyanWilliams für den Kommentar. Aber ich weiß, Möglichkeit zum erstellen von Datei in Windows mit langen Dateinamen enthält Punkt am Ende des Dateinamens und ohne die Endung 🙂
Sollte es wieder !rg1.test(fname) && !rg2.test(fname) && !rg3.test(fname); denke ich.
AUX fehlt, COM0 ist tatsächlich gültig, beginnend mit "." ist tatsächlich gültig... ref
InformationsquelleAutor Andrew D.
Müssen Sie verankern die expression durch den Einsatz von
^
und$
. Zum Beispiel:Beachten Sie, dass Sie brauchen, um zu entkommen
-
in einer Charakter-Klasse, oder es wird die erste/Letzte.InformationsquelleAutor Qtax
InformationsquelleAutor Ryan Williams
Ich würde versuchen, etwas mit dieser Regex (Sie können sogar ein validation-Attribut für ASP.NET MVC mit!!!):
Ob Sie mit der Eingabe, es ist gültig mit dem Namen (zumindest auf Windows).
InformationsquelleAutor user2173353
Seit dieser Beitrag (regex-für-windows-Datei-name) leitet auf diese Frage, ich nehme an es geht um windows-Datei-Namen.
Und basiert auf den Kommentar und Referenz von @Leon auf die Antwort von @AndrewD, habe ich diesen regulären Ausdruck und es funktioniert für mich.
Laut dem naming-Konventionen (siehe Verweis oben), bin ich damit einverstanden, dass "com0" sollte ein Gültiger Dateiname, aber es funktioniert nicht, wenn Sie versuchen, einen Dateinamen, "com0" an windows, so dass ich denke, das ist, fehlt in dem Artikel.
Sodass dieser reguläre Ausdruck wäre mehr sicher
InformationsquelleAutor lale liley