我想阻止使用空间。我必须在哪里编辑和写什么?
$k = "".$post['dname'.$i]."";
$name = preg_replace("/[^a-zA-Z0-9_-\s]/", "", $k);
$database->setVillageName($database->RemoveXSS($varray[$i]['wref']),$name);
答案 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)