Jump to content

preg_replace() breaking if more than two characters are used in a row...


Jabop

Recommended Posts

<?php
$String=preg_replace("'[\041-\057]|[\072-\100]|[\133-\140]|[\173-\176]'","",$String);
?>

 

That is supposed to remove most characters that are not alphanumeric. However, if some strings are used in a row, it breaks. Like '@^^test$$%', which will return nothing at all.

 

Also, if a pound sign (#) is used ANYWHERE, it will also return blank. Am I using this function wrong?

If you want to remove all non-alphanumeric characters, use this, as it's simpler:

 

<?php
$string = preg_replace('|[^a-z0-9]|i', '', $string);
?>

 

The caret (^) inside the brackets means "match anything NOT specified here", and the i modifier makes the search case insensitive.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.