php menggantikan semua simbol atau ruang dalam rentetan dengan "-"
PHPz
PHPz 2017-05-16 13:16:12
0
3
576

Bagaimana saya boleh menggantikan semua simbol atau ruang dalam rentetan perkataan dengan "-"
Termasuk,? @%! $&*(apa sahaja)

PHPz
PHPz

学习是最好的投资!

membalas semua(3)
習慣沉默

$result = preg_replace('/[^w]|[_]/', '『-』', $str);
Padankan dan gantikan aksara bukan abjad angka.
w termasuk _ Jika anda mahu menggantikan semuanya, tambah |[_]. $result = preg_replace('/[^w]|[_]/', '「-」', $str);
匹配替换非字母数字并替换。
w包括_,如果想一并替换掉,再添加上 |[_]


回评论:
如果想替换除中英文外的其他字符的话,pattern改为下列形式:
/[^bA-Za-zx{4e00}-x{9fa5}]/u
b 表示空格;
u4e00-u9fa5是unicode里中文的表示法,但preg_replace不支持u的写法,可以使用 x{XXXX}来替代;
最后使用u


Balas ulasan:
Jika anda ingin menggantikan aksara selain bahasa Cina dan Inggeris, tukar corak kepada bentuk berikut:
/[^bA-Za-zx{4e00}-x{9fa5} ]/u
b mewakili ruang;
u4e00-u9fa5 ialah representasi bahasa Cina dalam unicode, tetapi preg_replace tidak menyokong kaedah penulisan u, anda boleh menggunakan x{XXXX};
Akhir sekali, gunakan pilihan u untuk menunjukkan bahawa set aksara utf-8 digunakan. 🎜
伊谢尔伦

Panggil removeXss()

迷茫

preg_replace adalah satu kaedah, di sini saya menyediakan kaedah lain, lihat kod di bawah

    $str = 'hello %abc?11';
    $patten = array(
        '【',
        '】',
        '「',
        '?',
        '%',
        '&'
    );

    $rs = str_replace(' ','',str_replace($patten,'「-」',$str));
    echo $rs;
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan