使用中のセパレーターに合わせて、好みのものに変更するための 1 つのソウルション
<?php
/* split input in 3 parts: integer, separator, decimals */
if(preg_match('#^(?<integer>.*)(?<separator>[\.,])(?<decimals>[0-9]+)$#', $input, $matches))
{
/* clean integer and append decimals with your own separator */
$number = ((int) preg_replace('#[^0-9]+#', '', $matches['integer']) . '.' . $matches['decimals']
}
else
{
$number = (int) preg_replace('#[^0-9]+#', '', $input);
}
?>
注意: 私は正規表現の中で / を使用することが多いので、/ の代わりに # 正規表現を使用することを好みます/[^0-9]+/
。/^(?<integer>.*)(?<separator>[\.,])(?<decimals>[0-9]+)$/