用单个字符替换所有非数字字符
Replacing all non numeric characters with a single character
我需要能够像这样转动字符串:98$#221$$99
进入这个:98-221-99
我在下面使用的代码替换了所有非数字字符,但它单独替换了它们。我只需要用一个连字符替换它。
这是我使用的代码:
$number = '82#1';
$number = preg_replace("/[^0-9]/", " ", $number);
$number = str_replace(" ", "-", $number);
这个的输出是:82--991
我需要它是:82-991
有什么办法吗?
您可以使用 quantifier,而不是在 preg_replace()
之后调用 str_replace()
。 +
量词告诉正则表达式引擎匹配前面的标记 "one or more" 次。
$number = '98$#221$';
$number = preg_replace('/[^0-9]+/', '-', $number);
echo $number; //=> "98-221-99"
我需要能够像这样转动字符串:98$#221$$99
进入这个:98-221-99
我在下面使用的代码替换了所有非数字字符,但它单独替换了它们。我只需要用一个连字符替换它。
这是我使用的代码:
$number = '82#1';
$number = preg_replace("/[^0-9]/", " ", $number);
$number = str_replace(" ", "-", $number);
这个的输出是:82--991
我需要它是:82-991
有什么办法吗?
您可以使用 quantifier,而不是在 preg_replace()
之后调用 str_replace()
。 +
量词告诉正则表达式引擎匹配前面的标记 "one or more" 次。
$number = '98$#221$';
$number = preg_replace('/[^0-9]+/', '-', $number);
echo $number; //=> "98-221-99"