Reputation: 1912
I am trying to remove a trailing -
(dash) at the end of the string. Here is my code:
<?php $str = 'SAVE $45! - Wed. Beach Co-ed 6s (Jul-Aug)'; echo ereg_replace('([^a-z0-9]+)','-',strtolower($str)); ?>
produces this:
save-45-wed-beach-co-ed-6s-jul-aug-
How can I remove a specific trailing character only if its there, in this case the dash?
Thanks in advance.
Upvotes: 3
Views: 12164
Reputation: 539
Another solution.
<?php
$string = 'SAVE $45! - Wed. Beach Co-ed 6s (Jul-Aug)';
$search = array('/[^a-z0-9]+/', '/[^a-z0-9]$/');
$replace = array('-', '');
echo preg_replace($search, $replace, strtolower($string));
?>
Output.
save-45-wed-beach-co-ed-6s-jul-aug
Upvotes: 1
Reputation: 31723
Your regex is false because it removes every non-alphanumeric characters with a dash.
That should be
echo ereg_replace('-$','',strtolower($str));
$ means "end of string" and the second parameter is the replacement. (At least I think so, I don't know the php ereg_replace function)
Upvotes: 0