我需要从字符串中删除除- ( )
之外的所有特殊字符
我有这个代码到目前为止
$q = preg_replace('/[^A-Za-z0-9'-]/', '', $q); //removes ALL characters
如何排除- ( )
?
您的正则表达式已经排除了-
。
否则,将括号放在否定字符类中:
$q = preg_replace('/[^A-Za-z0-9() -]/', '', $q);
此外,你不需要逃避冲刺。
您应该尝试类似的东西
$q = preg_replace('/[^A-Za-z0-9'-'(') ]/', '', $q); //removes ALL characters
以上将允许spaces
、(
、)
以及-
。
您应该使用以下函数:
public function getAlphaNumericString($string) {
return preg_replace('/[^A-Za-z0-9'- ]/', '', $string); // Removes special chars.
}
任何你想破例的东西示例=>。是例外,其他特殊字符将被删除preg_replace('/[^A-Za-z0-]/(.)','',$string);
function url($string)
{
return strtolower(trim(preg_replace('~[^0-9a-z]+~i', '-', html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8')), ENT_QUOTES, 'UTF-8')), '-'));
}
$url_name = 'manoj&chauhan';
echo =$url(url_name );
// result manoj-chauhan