Lets say i have:
$string = 'qwe1ASD@';
if(preg_match('/^[a-zA-Z]+$/', $string))
{
echo 'OK';
}
else
{
echo 'BAD';
}
Now, is there simple solution, to find all characters from $string which don’t match expression? So in return, in place of “BAD” i want to have ex. “BAD. You can’t use following characters: 1@”
Thanks in advance for any simple hints! 🙂
Thank you Floern, your answer suit best my needs. It have only one “preg” so it’s also good for performance. Thank you again.
I implemented it for now as follw:
if(preg_match_all('/[^a-zA-Z0-9]/s', $string, $forbidden))
{
$forbidden = implode('', array_unique($forbidden[0]));
echo 'BAD. Your string contains forbidden characters: '.htmlentities($forbidden).'';
}
You could use
preg_match_all():