扫码关注官方订阅号
請問如何把一串字的所有符號或空白都替換成 「-」呢包括,?@%!$&*(什麼的)
学习是最好的投资!
$result = preg_replace('/[^\w]|[_]/', '「-」', $str);匹配替换非字母数字并替换。\w包括_,如果想一并替换掉,再添加上 |[_]。
$result = preg_replace('/[^\w]|[_]/', '「-」', $str);
\w
_
|[_]
回评论:如果想替换除中英文外的其他字符的话,pattern改为下列形式:/[^\bA-Za-z\x{4e00}-\x{9fa5}]/ub 表示空格;\u4e00-\u9fa5是unicode里中文的表示法,但preg_replace不支持\u的写法,可以使用 \x{XXXX}来替代;最后使用u选项来表示用的是utf-8字符集。
/[^\bA-Za-z\x{4e00}-\x{9fa5}]/u
\u4e00-\u9fa5
\u
\x{XXXX}
u
调用一下 removeXss()
preg_replace是一种方法,这里我提供另外一种方法,参看下面代码
$str = 'hello %abc?11'; $patten = array( '【', '】', '「', '?', '%', '&' ); $rs = str_replace(' ','',str_replace($patten,'「-」',$str)); echo $rs;
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
$result = preg_replace('/[^\w]|[_]/', '「-」', $str);
匹配替换非字母数字并替换。
\w
包括_
,如果想一并替换掉,再添加上|[_]
。回评论:
如果想替换除中英文外的其他字符的话,pattern改为下列形式:
/[^\bA-Za-z\x{4e00}-\x{9fa5}]/u
b 表示空格;
\u4e00-\u9fa5
是unicode里中文的表示法,但preg_replace不支持\u
的写法,可以使用\x{XXXX}
来替代;最后使用
u
选项来表示用的是utf-8字符集。调用一下 removeXss()
preg_replace是一种方法,这里我提供另外一种方法,参看下面代码