これが私がこれまでに持っているコードです:
function fix_comma($str) {
$str = preg_replace('/[^0-9,]|,[0-9]*$/', ',', $str);
$str = preg_replace(
array(
'/[^\d,]/', // Matches anything that's not a comma or number.
'/(?<=,),+/', // Matches consecutive commas.
'/^,+/', // Matches leading commas.
'/,+$/' // Matches trailing commas.
),
'', // Remove all matched substrings.
$str
);
return $str;
}
テキスト領域の入力をコンマ区切りの数値セットに変換するとうまく機能します。
103,,,112 - 119 asdf 125 は 103,112,119,125 に変わります
ユーザーは、1 つ以上の数字にプラス記号を含めたい場合があります。
103 - 112 - 119 - 125+ は 103,112,119,125+ または 103, 112, 119, +125 は 103,112,119,+125 に変換する必要があります
プラス記号が含まれている場合に最終的な文字列から削除されないように、誰かが関数を修正できますか?