2

我想$key用空字符串替换变量第 12 位的任何数字字符:$key变量有 12 个字符 + 递增的数字字符。例如:

IODN4YFK5XKV1
GYDN4YFK5XKV2
P3FU4YFK5XKV3

贝娄是我当前的 php 代码行:

$data = ereg_replace( "[0-9]+$", "", $_REQUEST['code'] );

问题:如果我$key = HXGE1SR9OWM428的 ,最后 3 位数字 (428) 将被删除,但我只想删除第 12 位的数字,这样我的结果将是$data = HXGE1SR9OWM4

4

3 回答 3

2

为什么不使用substr()

 $data = substr($_REQUEST['code'], 0, 12);

仅供参考,ereg_*在较新版本的 PHP 中已弃用

于 2012-07-22T01:59:36.827 回答
0

使用 deprecatedereg_*如您的问题所示,您将执行以下操作:

$data = ereg_replace('^([A-Z0-9]{12})[0-9]+', '\1', $_REQUEST['code']);

如果模式中需要包含小写字母,只需更改ereg_replaceeregi_replace.

但是,更好的方法是改用preg_*函数组:

$data = preg_replace('/^(\w{12})\d+$/', '$1', $_REQUEST['code']);

同样,对于小写字母,只需i在模式的末尾添加,所以它是'/^(\w{12})\d+$/i'

于 2012-12-21T20:30:23.780 回答
0

你可以这样做: *我正在使用 preg_replace 代替。

$data = preg_replace( "/^([\w]{12})[0-9]+$/", "$1", $_REQUEST['code'] );
于 2012-07-22T01:59:52.873 回答