我试图从字符串中删除所有内容,但只是数字(0-9)。
我认为这将工作…
echo preg_replace("[^0-9]","",'604-619-5135');
但它回显"604-619-5135"。我错过了什么?
试试这个:
preg_replace('/[^0-9]/', '', '604-619-5135');
preg_replace使用通常以/
开始和结束的pcre。
这是为将来的开发者准备的,你也可以试试这个。简单了
echo preg_replace('/'D/', '', '604-619-5135');
您需要用分隔符将模式括起来—通常使用斜杠(/)。试试这个:
echo preg_replace("/[^0-9]/","",'604-619-5135');
注意:如果您正在过滤包含-符号的字符串,则不适用于此答案,因为-代表负号,不会被过滤和删除。(如-2,-4等)。如果您还想使用它,请删除-字符,然后再尝试。
(- +。E)字符不会被这个函数
剥离对于那些不想使用regex的人来说是一个更实用的方法:
$data = filter_var($data, FILTER_SANITIZE_NUMBER_INT);