preg_match: Zahl-Buchstaben und Kommas nur
Wie Schreibe ich einen regulären Ausdruck übereinstimmt Zahl-Buchstaben und Kommas nur?
Ich kam mit dieser unter, aber es funktioniert nicht - es akzeptiert andere Satzzeichen, wie gut!
# check for matches number-alphabets and commas only
if(!preg_match('/([a-zA-Z0-9]|[a-zA-Z0-9\,])/', $cst_value))
{
$error = true;
echo '<error elementid="usr_username" message="'.$cst_name.' - please use number-alphabets and commas only."/>';
}
Vielen Dank,
Lau
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du willst:
Müssen Sie die start -
^
und Ende$
string-Anker. Ohne das die regex-engine Aussehen wird für jedes dieser Zeichen in der Zeichenfolge, und wenn es eine findet, wird es nennen es einen Tag und sagen, es ist ein Spiel. Mit dem Anker, es zwingt den Motor zu betrachten, der ganze string. Grundsätzlich:/[a-zA-Z0-9,]+/
passt, wenn alle der Zeichen sind alphanumerische + Komma./^[a-zA-Z0-9,]+$/
passt, wenn alle der Zeichen sind alphanumerische + Komma.Passieren wir die folgenden preg_match :
/^[0-9a-z,]+$/i
Erklärung:
/
: regex-Begrenzer.^
: start-Anker[..]
: Char-Klasse0-9
: jede Ziffera-z
: jedes alphabet,
: ein Komma. Komma ist ein regexmetachar, so brauchen Sie nicht entkommen, es
+
: Quantifizierer für eine oder mehrere. Wenneine leere Eingabe als gültig angesehen wird,
ändern
+
zu*
$
: Ende Ankeri
: die passenden Etuiunsensibel.
Gut, das fügt ein paar mehr Zeichen wie Unterstrich
/^[\w,]*$
/Aber diese Arbeit sollte
\w
sind nicht enthalten Leerzeichen.