PHP 正则表达式 - 仅筛选器编号

2022-08-30 09:55:01

我知道这可能听起来像是一个真正的虚拟问题,但我试图确保提供的字符串是数字/十进制格式,以便稍后将其与PHP的number_format()函数一起使用。

我该怎么做 - 假设有人在文本字段中输入15:00 - 我应该使用什么正则表达式和php函数从中删除冒号并使其仅返回有效字符。

preg_match() 返回数组 - 所以我不能将结果传递给number_format(),除非我 implode() 它或类似的东西。

您的帮助将不胜感激。


答案 1

使用is_numericintval可能是在这里验证数字的最佳方法,但要回答您的问题,您可以尝试使用preg_replace。本示例删除所有非数字字符:

$output = preg_replace( '/[^0-9]/', '', $string );

答案 2

删除任何不是数字的内容:

$output = preg_replace('/[^0-9]/', '', $input);

解释:

  • [0-9]匹配 0 到 9 之间的任意数字(包括 0 和 9)。
  • ^否定模式。[]
  • 因此,匹配任何不是数字的东西,并且由于我们正在使用,它们将被任何东西替换(的第二个参数)。[^0-9]preg_replace''preg_replace

推荐