📜  php 删除非数字 - PHP (1)

📅  最后修改于: 2023-12-03 15:03:41.385000             🧑  作者: Mango

PHP 删除非数字

在 PHP 开发中,有时候需要去除字符串中的非数字字符,只留下数字。本文将介绍几种方法来实现这个功能。

方法一:正则表达式

使用正则表达式可以很方便地去除非数字字符。下面的示例代码将用 preg_replace 函数实现:

<?php

$str = 'abc123def456';
$str = preg_replace('/\D/', '', $str);

echo $str;  // 输出 123456
?>

解释一下这段代码:

  • / 开头和结尾的斜杠表示正则表达式的开始和结束。
  • \D 表示非数字的字符。\d 表示数字字符。
  • 第三个参数是要替换为的字符,这里留空表示去除非数字字符。
方法二:循环遍历

循环遍历字符串,将非数字字符删除,只留下数字。下面的示例代码将用 for 循环实现:

<?php

$str = 'abc123def456';
$new_str = '';

for ($i = 0; $i < strlen($str); $i++) {
    $char = $str[$i];
    if (ctype_digit($char)) {
        $new_str .= $char;
    }
}

echo $new_str;  // 输出 123456
?>

解释一下这段代码:

  • ctype_digit 函数用于检查字符是否是数字字符。返回值为 true 或 false。
  • . 运算符用于字符串的拼接。
方法三:使用 filter_var 函数

filter_var 函数可以过滤掉字符串中的非数字字符。下面的示例代码将用 filter_var 函数实现:

<?php

$str = 'abc123def456';
$str = filter_var($str, FILTER_SANITIZE_NUMBER_INT);

echo $str;  // 输出 123456
?>

解释一下这段代码:

  • FILTER_SANITIZE_NUMBER_INT 是一个过滤器常量,表示过滤掉字符串中的非数字字符。
总结

本文介绍了三种方法来删除字符串中的非数字字符。使用正则表达式是最常见的方式,循环遍历的方式较为简单,使用 filter_var 函数更加方便。根据实际需求选择合适的方法即可。