Jabop Posted June 14, 2008 Share Posted June 14, 2008 <?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? Link to comment https://forums.phpfreaks.com/topic/110181-preg_replace-breaking-if-more-than-two-characters-are-used-in-a-row/ Share on other sites More sharing options...
thebadbad Posted June 14, 2008 Share Posted June 14, 2008 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. Link to comment https://forums.phpfreaks.com/topic/110181-preg_replace-breaking-if-more-than-two-characters-are-used-in-a-row/#findComment-565466 Share on other sites More sharing options...
Jabop Posted June 15, 2008 Author Share Posted June 15, 2008 Is there a way you could modify that really quick to include hyphens? Link to comment https://forums.phpfreaks.com/topic/110181-preg_replace-breaking-if-more-than-two-characters-are-used-in-a-row/#findComment-565769 Share on other sites More sharing options...
sasa Posted June 15, 2008 Share Posted June 15, 2008 just add - $string = preg_replace('|[^a-z0-9-]|i', '', $string); Link to comment https://forums.phpfreaks.com/topic/110181-preg_replace-breaking-if-more-than-two-characters-are-used-in-a-row/#findComment-565817 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.