Php preg_replace空间

时间:2014-02-25 14:43:57

标签: php preg-replace

我想阻止使用空间。我必须在哪里编辑和写什么?

 $k = "".$post['dname'.$i]."";
                 $name = preg_replace("/[^a-zA-Z0-9_-\s]/", "", $k);
                 $database->setVillageName($database->RemoveXSS($varray[$i]['wref']),$name);

2 个答案:

答案 0 :(得分:0)

只需从字符类中删除\s

$name = preg_replace("/[^a-zA-Z0-9_-]/", "", $k);

或(更短):

$name = preg_replace("/[^\w-]/", "", $k);

修改

$k = "".$post['dname'.$i]."";
$name = preg_replace("/[^\w\s-]/", "", $k);
if (preg_match('/^\s+$/', $name) {
    // error : $name mustn't be all spaces
    // do appropriate stuff
}
$database->setVillageName($database->RemoveXSS($varray[$i]['wref']),$name);

答案 1 :(得分:0)

如果您只想在字符串中允许一个空格,那么可以在正则表达式中使用or运算符。

$str = 'some name';

if(preg_match('/^([\w]+|[\w]+ [\w]+)$/', $str, $matches))
{
    echo 'success';
}
else
{
    echo 'fail';
}

当字符串中有0或1个空格时,此代码将成功。否则,如果它有更多空格,它将失败。

您可以使用以下代码:http://codepad.viper-7.com/yTtWz1


preg_replace当然是相似的:

preg_replace('/^([\w]+|[\w]+ [\w]+)$/', "", $str)