ereg_replace或preg_replace函数

时间:2012-07-22 01:45:31

标签: php preg-replace ereg-replace

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

IODN4YFK5XKV1
GYDN4YFK5XKV2
P3FU4YFK5XKV3

Bellow是我目前的php代码:

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

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

3 个答案:

答案 0 :(得分:2)

为什么不使用substr()

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

仅供参考,ereg_*在较新版本的PHP

中已弃用

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

使用您的问题中显示的已弃用的ereg_*

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

如果模式中需要包含小写字母,只需将ereg_replace更改为eregi_replace

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

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

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