0

我是新手preg_replace。我有以下表达式,我想用字符串中的数字0-9替换 #。它返回相同的字符串而没有更改,我哪里出错了?我尝试了谷歌,但仍然找不到解决方案。谢谢。

$phonenumber = "0720123456";
    $format = trim(preg_replace("/[^0-9]/", "#", $phonenumber));
4

2 回答 2

4

[^0-9]将匹配除数字之外的任何内容

您需要使用[0-9]或快捷方式\d

$format = trim(preg_replace("/\d/", "#", $phonenumber));
于 2013-09-22T09:53:21.073 回答
3

只需/[0-9]/用作您的正则表达式。

您的表达式/[^0-9]/意味着替换任何字符,但不是(通过^)数字。

例子:

<?php
header('Content-Type: text/plain; charset=utf-8');

$phonenumber = "0720123456";
$format = trim(preg_replace("/[0-9]/", "#", $phonenumber));

echo $format;
?>

结果:

##########
于 2013-09-22T09:52:42.147 回答