php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.11.2010, 13:47  
Erfahrener Benutzer
 
Benutzerbild von pfump
 
Registriert seit: 29.03.2008
Beiträge: 576
pfump kann nur auf Besserung hoffen
Standard

Erst mal vielen Dank für die Antworten.

Mich würde jedoch interessieren, was ihr von meinem
Ausdruck haltet. Da ich nicht viel Erfahrung mit regulären
Ausdrücken habe, wüßte ich gerne ob der so in Ordung ist

Hier noch mal der Ausdruck:
Code:
var reg=/_\d{1,}_\d{1,}_\d{1,}\.[a-zA-Z]{3}$/;
pfump ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.11.2010, 13:54  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Wenn der Ausdruck das tut, was er soll, dann ist er richtig.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 05.11.2010, 13:58  
Benutzer
 
Registriert seit: 24.02.2010
Beiträge: 45
PHP-Kenntnisse:
Fortgeschritten
Heiko R ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Grundsätzlich ist dein Ausdruck nicht verkehrt, aber es geht eben auch mit einer Zeile Code:
Zitat:
(str).match(/^([-_a-zA-Z0-9]+)_(?:\d+)_(?:\d+)_(?:\d+).(jpg|jpeg|gif|png|bmp)$/ig)
Deine Variante alle Filetypen mit 3 Buchstaben zu, also auch PDF, DOC, TXT etc.
Und was ist mit Bilddateien, die 4 Buchstaben haben, wie z.B TIFF, JPEG?
Wenn du {1,} benutzt um einen Mindestvorkommen zu kennzeichnen, ist ein + sinnvoller.
Das + bedeutet "mindestens einmal".
Aber solange alles funktioniert wie du das willst, ist es jnicht verkehrt.
Die eine optimale Lösung gibt es nie
__________________
Zitat:
"Nein, nein das Beste an Zombieland ist: Keine Facebook-Status-Updates mehr.
'Rob Curtis freut sich schon auf Freitag', wen interessierts?"

Geändert von Heiko R (05.11.2010 um 14:07 Uhr).
Heiko R ist offline   Mit Zitat antworten
Alt 05.11.2010, 14:07  
Erfahrener Benutzer
 
Benutzerbild von pfump
 
Registriert seit: 29.03.2008
Beiträge: 576
pfump kann nur auf Besserung hoffen
Standard

Aha,

Das mit dem Plus hab ich z.B. noch net gewußt.

Was bedeutet denn das /ig in deinem ausdruck?
Wird bei dir Groß- und Kleinschreibung beachtet?
Also wenn das Bild z.B. .JPG endet.

Könntest du deinen Ausdruck mal etwas geauer erklären?
pfump ist offline   Mit Zitat antworten
Alt 05.11.2010, 14:35  
Benutzer
 
Registriert seit: 24.02.2010
Beiträge: 45
PHP-Kenntnisse:
Fortgeschritten
Heiko R ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also erstmal:
Ja, meine Variante ist unabhängig von Groß- und Kleinschreibung.
Dafür steht das "i" am Ende: "Match case-insensitive"
Das "g" steht für "finde den Ausdruck so oft wie er vor kommt".
Ist hier in deinem Fall eigentlich nicht notwendig.

Du hast geschrieben, dein String besteht aus 5 Gruppen:
1 mal Dateiname und dreimal Zahlen, jeweils getrennt von Unterstrichen, gefolgt von einer Dateiendung.
Mit den Klammern die ich benutzt habe, habe ich die Teilabschnitte markiert.
Damit "merkt sich" mein Ausdruck den gefunden Wert.
Bis zu 9 solchen Klammern sind in einem regulären Ausdruck möglich.

Die erste Klammer sucht nach einem String bestehend aus Buchstaben, Zahlen, Unter- und Bindestrich.
Das + in der Klammer sagt, das in dem Ergebnis mindestens eins von den vorgenannten Zeichen matchen muss.
Also ist sowohl der Dateiname "f" gültig, wie auch "f3" oder "fP_-9z".
Statt [-_a-zA-Z0-9] könntest du auch einfach [-\w] schreiben.
"\w" steht für alle alphanumerischen Zeichen und den Unterstrich.

Die nächsten 3 Klammern suchen jeweils nach Zahlen. Hierfür steht, wie du selber schon rausgefunden hast, das "\d".
Mit dem "?:" sage ich noch, das ich im Ergebnis diese Abschnitte NICHT angezeigt bekommen möchte.
Da sie nicht benötigt werden, werfe ich sie sozusagen einfach weg.

Nach dem dritten Zahlenblock muss ein Punkt kommen, gefolgt von der Zeichenkette "jpg" oder "jpeg" oder "gif" oder "png" oder "bmp".
Wie bereits erwähnt, steht das "i" am Ende meines Ausdrucks für "Groß- und Kleinschreibung egal", also wäre auch ein "JPG" richtig.

Das Zirkumflex ^ am Anfang meines Ausdrucks sagt, dass das erste Klammernpaar am Anfang stehen muss und das Dollarzeichen $ besagt, dass der Filetype am Ende des Strings stehen muss.

So...
Und wenn du match() benutzt, kannst du mit "RegExp.$(eine_zahl)" auf das jeweilige Klammernpaar direkt zugreifen.
Weil ich mit "?:" die drei Zahlenblöcke im String "verworfen" habe, steht entsprechend RegExp.$1 für den Bildnamen (Klammer eins) und RegExp.$2 für die Dateiendung (letztes Klammernpaar).
Würdest du die "?:" weglassen, wäre die Dateiendung in RegExp.$5 versteckt
__________________
Zitat:
"Nein, nein das Beste an Zombieland ist: Keine Facebook-Status-Updates mehr.
'Rob Curtis freut sich schon auf Freitag', wen interessierts?"
Heiko R ist offline   Mit Zitat antworten
Alt 05.11.2010, 14:53  
Erfahrener Benutzer
 
Benutzerbild von pfump
 
Registriert seit: 29.03.2008
Beiträge: 576
pfump kann nur auf Besserung hoffen
Standard

Das nenn ich doch mal eine richtig gute
und sachliche Antwort

Vielen Dank für die Mühe die du dir gemacht hast.
Es gab ja eiiges was ich schon gewußt habe, z.B. ^, $ oder \w

Aber das mit den Klammerpaaren kannte ich noch nicht.
Wieder etwas mehr gelernt

Also nochmals vielen Dank.
pfump ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Persistence Framework #Avedo Software-Design 37 28.03.2009 17:32
Dash aus Datenbank richtig darstellen knit PHP-Fortgeschrittene 7 06.03.2009 18:51
Timestamp in Datenbank: String oder int PsychoEagle Off-Topic Diskussionen 6 03.03.2009 12:16
Hashfunktion String -> Integer Flor1an PHP Tipps 2009 10 26.02.2009 01:16
jQuery Plugin - so richtig? stayInside JavaScript, Ajax und mehr 5 23.02.2009 12:34
string in string suchen,ersetzen,zusammenfügen und update machen litterauspirna PHP Tipps 2009 24 08.01.2009 13:38
Event abfangen Ambience JavaScript, Ajax und mehr 4 30.08.2007 14:36
Alle Felder nach String durchsuchen Jacks Rache Datenbanken 6 08.08.2005 09:46
In allen Spalten nach String suchen Jacks Rache Datenbanken 0 05.08.2005 20:15
In allen Tabellen nach String suchen Jacks Rache Datenbanken 0 05.08.2005 11:18
String in allen Spalten suchen Jacks Rache Datenbanken 0 05.08.2005 09:43
Alle Spalten nach String durchsuchen Jacks Rache Datenbanken 0 05.08.2005 09:41
Problem Checkboxen - string mit Zahlen die gecheckten setzen Cyberbob_at_tot PHP Tipps 2005-2 5 11.06.2005 11:36
string -> int, nur wenn string zahl ist PHP Tipps 2005-2 3 06.06.2005 12:33
[Erledigt] String mit Leerzeichen auffüllen HTML, Usability und Barrierefreiheit 2 27.10.2004 18:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript string ende abschneiden, javascript string am ende kürzen, php string kürzen auf das was in klammern steht, strings mit regulären ausdrücken abschneiden, jquery string \nach bindestrich\, javascript string nach ausdruck abschneiden, php alles nach bindestrich abschneiden, jquery text abschneiden ... leerzeichen, javascript abschneiden, javascript leerzeichen abschneiden, rob curtis freut sich auf freitag, bindestrich abschneiden php, javascript leerzeichen entfernen, alles nach der klammer abschneiden php.net, rob curtis freut sich schon auf freitag

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum