如何从PHP中的字符串中删除所有非字母数字和非空格字符?

时间:2010-03-23 19:00:26

标签: php

我想从字符串中删除所有非字母数字和空格字符。所以我确实希望留下空间。我在[]括号中为下面的函数添加了什么空间:

ereg_replace("[^A-Za-z0-9]", "", $title);

换句话说,什么符号代表空间,我知道\ n代表一个新行,是否有任何这样的符号用于单个空格。

3 个答案:

答案 0 :(得分:25)

只需在你的角色类中添加一个空格:

[^A-Za-z0-9 ]

对于其他空格字符(制表符,换行符等),请改用\s

您还应该知道PHP’s POSIX ERE regular expression functions已被弃用,并且将在PHP 6中删除,以支持PCRE regular expression functions。因此,我建议您改为使用preg_replace

preg_replace("/[^A-Za-z0-9 ]/", "", $title)

答案 1 :(得分:2)

如果你只想要一个文字空间,就把一个放入。像'空白字符'那样的组,如tab和换行符是\ s

答案 2 :(得分:1)

接受的答案不会删除空格。

考虑以下

$string = 'tD  13827$2099';
$string = preg_replace("/[^A-Za-z0-9 ]/", "", $string);

echo $string;

> tD  138272099

现在,如果我们str_replace空格,我们得到所需的输出

$string = 'tD  13827$2099';
$string = preg_replace("/[^A-Za-z0-9 ]/", "", $string);

// remove the spaces
$string = str_replace(" ", "", $string);

echo $string;

> tD138272099