2

$keyvariable の 12 番目の位置からの数字を空の文字列に置き換えたいと思います: $keyvariable には 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

次のようにできます: *代わりに preg_replace を使用しています。

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

質問に示されているように非推奨を使用ereg_*すると、次のようになります。

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

パターンに小文字を含める必要がある場合は、単純に に変更ereg_replaceeregi_replaceます。

ただし、より良いアプローチは、preg_*代わりに functions グループを使用することです。

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

繰り返しますが、小文字の場合iは、パターンの最後に追加するだけです。'/^(\w{12})\d+$/i'

于 2012-12-21T20:30:23.780 に答える