MudGuard: RegExp-Pattern so richtig? Wie kann man Fehler besser finden?

Beitrag lesen

Hi,

/^[a-z0-9_-]+$/i
Nun habe ich auch gelesen, dass [a-zA-Z0-9_] gleichbedeutend mit \w sei. Demnach ließe sich meine Idee "verbessern" zu:
/^\w-$/

Nein. Ersteres erlaubt Zeichenfolgen aus mindestens einem Buchstaben, Ziffern, Unterstrich und Bindestrich.
Letzteres Erlaubt _ein_ Zeichen (Buchstabe, Ziffer oder Unterstrich) gefolgt von einem Bindestrich.

/[1]+$/
wäre gleichbedeutend mit ersterem, falls \w dasselbe wie [a-zA-Z0-9_] wäre.
Ist es aber meistens nicht (m.W. nur bei Java).
Je nach Regex-Engine fehlt der _, mal sind zusätzliche Zeichen drin (ggf. alle in Unicode als alphanumeric deklarierten Zeichen, teilweise auch nur die in der Locale gültigen.
Welche genaue Definition PHP verwendet, weiß ich nicht auswendig.

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.

  1. \w- ↩︎