📅  最后修改于: 2023-12-03 15:03:41.385000             🧑  作者: Mango
在 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
函数实现:
<?php
$str = 'abc123def456';
$str = filter_var($str, FILTER_SANITIZE_NUMBER_INT);
echo $str; // 输出 123456
?>
解释一下这段代码:
FILTER_SANITIZE_NUMBER_INT
是一个过滤器常量,表示过滤掉字符串中的非数字字符。本文介绍了三种方法来删除字符串中的非数字字符。使用正则表达式是最常见的方式,循环遍历的方式较为简单,使用 filter_var
函数更加方便。根据实际需求选择合适的方法即可。