preg_replaceing で文字列をフィルタリングしようとしています。数字とドット以外、およびドットの前に 5 個までの数字。wamp(UptoDate)の下のPHP 5.4.3。
グッドマッチ:
- 0.01
- 0.1
- 12345.11
- 12345.1
- 1
- 12345
悪い一致:
- 0,10
- 0,1
- 12345,11
- 12345,1
- 123456
私が抱えている最初の問題は、(,) カンマを削除できないことです。(.) ドットをセパレーターとして保持したいだけです。これは価格文字列用であることに注意してください。Phpは(,)カンマで計算しないみたいなので、入力はカンマのみにしたいです。コンマではありません。だから私は(^)を使用し、文字クラスを否定し、次に0-9. . 次に、一致する文字数を追加します。私は 1 から 5 の間でした (1 または 2 または 3 または... 5
私は何を間違っていますか。
ここに私が助けに使ってきた情報があります: http://www.regular-expressions.info/reference.html http://www.expreg.com/options.php
<?php $string = 'asd321asd321df564d.fasd321asd12';
$string = cleanabc123($string);
function cleanabc123($data) { $data =
preg_replace("/([^0-9\s\.]){1,5}/u", "", $data); return $data; }
// This will be 'username' now echo $string; ?>