Regulärer Ausdruck für die Erweiterung der Datei
Ich brauche 1 regulärer Ausdruck legen Beschränkungen auf die Datei-Typen unter Verwendung Ihrer Erweiterung.
Habe ich versucht, dieses für die Beschränkung der Datei-Typ html .Klasse, etc.
/(\.|\/)[^(html|class|js|css)]$/i
/(\.|\/)[^html|^class|^js|^css]$/i
Muss ich einschränken, insgesamt 10-15 Arten von Dateien. In meiner Anwendung gibt es ein Feld für akzeptierte Datei-Typ und je nach Anforderung habe ich die Dateitypen, die eingeschränkt werden. Also ich brauche einen regulären Ausdruck mit negation beschränkt Dateityp nur.
Den plugin-code ist wie:
$('#fileupload').fileupload('option', {
acceptFileTypes: /(\.|\/)(gif|jpe?g|png|txt)$/i
});
Kann ich angeben, die acceptedFileType aber ich habe angesichts der Forderung zu beschränken, eine Reihe von Datei.
Javascript? Oder welche Sprache?
Es wird wahrscheinlich einfacher, eine Schleife und vergleichen Sie die Erweiterung der Datei, die jeweils mit den Erweiterungen in der Liste. Wenn jede Erweiterung entspricht, dann bricht man die Schleife und verhindern, dass die Datei weiter zu gehen.
Eine regex für den Abgleich der eingeschränkten Dateitypen. Wenn es passt DON ' T tun es.
Tatsächlich,ich m, die mit diesem in einer der Jquery-plugin-code.und es hat zu pass 1 parameter wie AcceptedFileType. thts muss ich die reg-exp. sonst loop-Methode am besten ist.
das plugin-code akzeptiert nur AcceptedFileType.Ich suchte für die restrictedFileType parameter,aber nicht akzeptieren.
Es wird wahrscheinlich einfacher, eine Schleife und vergleichen Sie die Erweiterung der Datei, die jeweils mit den Erweiterungen in der Liste. Wenn jede Erweiterung entspricht, dann bricht man die Schleife und verhindern, dass die Datei weiter zu gehen.
Eine regex für den Abgleich der eingeschränkten Dateitypen. Wenn es passt DON ' T tun es.
Tatsächlich,ich m, die mit diesem in einer der Jquery-plugin-code.und es hat zu pass 1 parameter wie AcceptedFileType. thts muss ich die reg-exp. sonst loop-Methode am besten ist.
das plugin-code akzeptiert nur AcceptedFileType.Ich suchte für die restrictedFileType parameter,aber nicht akzeptieren.
InformationsquelleAutor iRunner | 2013-08-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
/^(.*\.(?!(htm|html|class|js)$))?[^.]*$/i
Versuchen Sie es hier: http://regexr.com?35rp0
Funktioniert es auch mit extensionless-Dateien.
Als alle regexes, es ist Komplex zu erklären... Lassen Sie ' s starten am Ende
Diese eine
(?!(htm|html|class|js)
heißt zero-width negative lookahead. Es erklärt mindestens 10 mal pro Tag auf, ALSO können Sie überall suchen 🙂test.str.html
zum Beispiel.Es entspricht dem leeren string. Weiß nicht, ob das schlecht ist oder nicht.
Erklären Sie den negierten lookahead. Es wäre eine bessere Antwort auf diese Weise.
Ja jetzt funktioniert es 🙂
Ich glaubte, das Problem wurde behoben, durch xanatos, denn es entspricht nicht mehr dem 'zwei Punkte' - Datei.
InformationsquelleAutor xanatos
Wenn Sie offen sind, um die Verwendung von JQuery, sollten Sie überspringen der regex alle zusammen und gehen mit einer Reihe von gültigen Dateiendungen statt:
Der große Vorteil ist hier die einfache Wartung . . . änderung akzeptabel Datei-Erweiterungen ist ein schnelles update auf das array (oder sogar eine Immobilie oder ein CMS-update, je nachdem, wie ausgefallen die Dinge sind 🙂 ). Auch
regex
hat eine Gewohnheit des seins ein wenig Prozess intensiv, so sollte dies effizienter sein (obwohl, ich noch nicht getestet, dies insbesondere bei noch).InformationsquelleAutor talemyn
Du scheinst zu missverstehen, wie Sie einen Charakter-Klasse funktioniert. Ein Charakter-Klasse, entspricht nur ein einzelnes Zeichen. Das gewählte Zeichen ist der ein von Sie in es. Also, Ihre Charakter-Klasse:
nicht mit
html
oderclass
in Folge. Es entspricht genau ein einzelnes Zeichen aus allen der Charakter in dieser Klasse.Sagte, für Ihre Besondere Aufgabe, die Sie verwenden müssen negative look-ahead -:
Allerdings würde ich auch überlegen, mit Hilfe der String-Bibliothek, die in meinem jeweiligen Sprache anstelle von regex, um dies zu erreichen Aufgabe. Sie brauchen nur, um zu testen, ob die Zeichenfolge endet mit einem von denen-Erweiterung.
In meinem Teil der USA, es bedeutet "darüber hinaus" oder "eine andere Art, es zu sehen"
Hier heisst es - "außerdem".
InformationsquelleAutor Rohit Jain