How do I write a regular expression which matches number-alphabets and commas only?
I came out with this one below but it doesnt work – it accepts other punctuation marks as well!
# 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."/>';
}
Many thanks,
Lau
You want:
You need the start
^and end$of string anchors. Without them the regex engine will look for any of those characters in the string and if it finds one, it will call it a day and say there’s a match. With the anchors, it forces the engine to look at the whole string. Basically:/[a-zA-Z0-9,]+/matches if any of the characters are alphanumeric + comma./^[a-zA-Z0-9,]+$/matches if all of the characters are alphanumeric + comma.