我想阻止使用空間。我必須在哪裏編輯和寫什麼?Php preg_replace空間
$k = "".$post['dname'.$i]."";
$name = preg_replace("/[^a-zA-Z0-9_-\s]/", "", $k);
$database->setVillageName($database->RemoveXSS($varray[$i]['wref']),$name);
我想阻止使用空間。我必須在哪裏編輯和寫什麼?Php preg_replace空間
$k = "".$post['dname'.$i]."";
$name = preg_replace("/[^a-zA-Z0-9_-\s]/", "", $k);
$database->setVillageName($database->RemoveXSS($varray[$i]['wref']),$name);
單從字符類取出\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);
什麼不同的兩個代碼? – user3351524
@ user3351524:'\ w'與'[a-zA-Z0-9_]'的含義相同,寫得越短越好:-) – Toto
但是現在我不能使用任何空間。我想阻止只有一個空間使用。 – user3351524
如果您只想在字符串中允許一個空格,那麼您可以在正則表達式中使用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)
希望阻止使用空間?解釋這 –
你是極客,你必須知道。 :)對不起,我的英語不好,但我怎麼解釋它..但它解決了刪除\ s – user3351524