請問如何把一串字的所有符號或空白都替換成 「-」呢包括,?@%!$&*(什麼的)
学习是最好的投资!
$result = preg_replace('/[^w]|[_]/', '「-」', $str);匹配替换非字母数字并替换。w包括_,如果想一并替换掉,再添加上 |[_]。
$result = preg_replace('/[^w]|[_]/', '「-」', $str);
w
_
|[_]
回評論:如果想替換中英文以外的其他字元的話,pattern改為下列形式:/[^bA-Za-zx{4e00}-x{9fa5}]/u /[^bA-Za-zx{4e00}-x{9fa5}]/ub 表示空格;u4e00-u9fa5是unicode里中文的表示法,但preg_replace不支持u的写法,可以使用 x{XXXX}来替代;最后使用ub 表示空格;
/[^bA-Za-zx{4e00}-x{9fa5}]/u
u4e00-u9fa5
u
x{XXXX}
x{XXXX} code>來替代;🎜最後使用u選項來表示用的是utf-8字元集。 🎜
呼叫一下 removeXss()
preg_replace是一種方法,這裡我提供另外一種方法,參考下面程式碼
$str = 'hello %abc?11'; $patten = array( '【', '】', '「', '?', '%', '&' ); $rs = str_replace(' ','',str_replace($patten,'「-」',$str)); echo $rs;
$result = preg_replace('/[^w]|[_]/', '「-」', $str);
匹配替换非字母数字并替换。
w
包括_
,如果想一并替换掉,再添加上|[_]
。回評論:
如果想替換中英文以外的其他字元的話,pattern改為下列形式:
/[^bA-Za-zx{4e00}-x{9fa5}]/u
/[^bA-Za-zx{4e00}-x{9fa5}]/u
b 表示空格;
u4e00-u9fa5
是unicode里中文的表示法,但preg_replace不支持u
的写法,可以使用x{XXXX}
来替代;最后使用
u
b 表示空格;u4e00-u9fa5
是unicode裡中文的表示法,但preg_replace不支援u
的寫法,可以使用x{XXXX} code>來替代;🎜最後使用
u
選項來表示用的是utf-8字元集。 🎜呼叫一下 removeXss()
preg_replace是一種方法,這裡我提供另外一種方法,參考下面程式碼