3

我需要从字符串中删除所有特殊字符,除了- ( )

到目前为止我有这个代码

$q = preg_replace('/[^A-Za-z0-9\-]/', '', $q); //removes ALL characters

如何排除- ( )

4

5 回答 5

5

您的正则表达式已经排除-.

否则,将括号放在否定字符类中:

$q = preg_replace('/[^A-Za-z0-9() -]/', '', $q);

此外,您不需要逃避破折号。

于 2013-08-20T13:16:58.547 回答
4

你应该尝试类似的东西

$q = preg_replace('/[^A-Za-z0-9\-\(\) ]/', '', $q); //removes ALL characters

以上将允许spaces, (,)以及-

于 2013-08-20T13:25:27.187 回答
2

你应该使用这个功能:

public function getAlphaNumericString($string) {
  return  preg_replace('/[^A-Za-z0-9\- ]/', '', $string); // Removes special chars.
}
于 2018-09-27T10:45:48.583 回答
0

任何你想例外的例子 => 。是例外,其他特殊字符将被删除 preg_replace('/[^A-Za-z0-9-]/(.)', '', $string);

于 2016-10-05T13:33:02.707 回答
0
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
于 2019-11-21T10:57:08.177 回答