ダッシュ、文字、数字、スペース、アンダースコア以外の文字列のすべての文字を削除する必要があります。ダッシュ、文字、数字、スペース、およびアンダースコアを除くすべての文字を削除するpreg_replace
だからこそ、さまざまな回答が結構ありますが(Replace all characters except letters, numbers, spaces and underscores、Remove all characters except letters, spaces and apostrophesなど)、一般的にダッシュは含まれていません。
助けていただければ幸いです。
$new = preg_replace('/[^ \w-]/', '', $old);
説明:
ハイフンにマッチしています空白が削除されます。あなたが必要とするのは、 'preg_replace( '/ [^ \ s \ w - ] /'、 ''、$ old);であり、Unicodeを使っているなら'/[^ \ s \ w \ p {M} \ p {Pd}]/u''( '\ p {Pd}'はダッシュである)。 –
@WiktorStribiżew私はこれを数時間使用していますが、スペースでうまく動作します。 –
[OK]をクリックしますが、質問に答えが一致しません。 –