为了账号安全,请及时绑定邮箱和手机立即绑定

如果大于 X,则删除数字 - PHP

如果大于 X,则删除数字 - PHP

PHP
神不在的星期二 2022-09-25 20:22:17
我正在从 中删除数字,如下所示:$name$name = str_replace (array ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'), '' , $namewithoutnumber);是否可以仅在数字超过 X 时删除数字,例如:joe123456(六个字符),而不能删除 if:joe123 或 1joe1234?
查看完整描述

5 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

您可以使用 删除名称中的所有数字,如果新名称的长度小于或大于旧名称,请替换旧名称:preg_replace


$names = array('joe123456',

               'joe123',

               '1joe1234',

               '123joe456');


foreach ($names as $name) {

    $new_name = preg_replace('/\d/', '', $name);

    if (strlen($new_name) <= strlen($name) - 6) {

        $name = $new_name;

    }

    echo "$name\n";

}

输出:


joe

joe123

1joe1234

joe

3v4l.org 演示


查看完整回答
反对 回复 2022-09-25
?
aluckdog

TA贡献1847条经验 获得超7个赞

另一种选择:


<?php


$names = array('joe123456',

               'joe123',

               '1joe1234',

               '123joe456',

               '1234567joe12345');


$new_names = [];


foreach ($names as $name) {

    if (preg_match("/\d{6}+/", $name)) {

        $new_names[] = preg_replace('/\d/', '', $name);

    } else {

        $new_names[] = $name;

    }

}


var_dump($new_names);

收益 率:


array(5) {

  [0]=>

  string(3) "joe"

  [1]=>

  string(6) "joe123"

  [2]=>

  string(8) "1joe1234"

  [3]=>

  string(9) "123joe456"

  [4]=>

  string(3) "joe"

}


查看完整回答
反对 回复 2022-09-25
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

您可以使用preg_replace来实现此目的。

$name = preg_replace('/[0-9]{6,}/', '', $name_with_too_long_numbers);


查看完整回答
反对 回复 2022-09-25
?
ibeautiful

TA贡献1993条经验 获得超5个赞

我想就是这样:


preg_match_all('!\d+!', $namewithoutnumber, $matches);

$numbers = implode('', $matches[0]);


if( strlen($numbers) > 5 ) {

  $name = str_replace (array ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'), '' , $namewithoutnumber);

}


查看完整回答
反对 回复 2022-09-25
?
皈依舞

TA贡献1851条经验 获得超3个赞

当然可以;只需通过 strlen() 函数运行它:

if (strlen($namewithoutnumber) > 5) {
  $name = str_replace (array ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'), '' , $namewithoutnumber);
}


查看完整回答
反对 回复 2022-09-25
  • 5 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信