[英]How do I “clean” a String in PHP using regex?
例如,假设我有
$blah = "C$#@#.a534&";
我希望过滤字符串,以便只有字母,数字和“。” 继续产生“C.a534”
我该怎么做呢?
如果您知道应该允许哪些字符,则可以使用否定字符组(在正则表达式中)删除其他所有字符:
$blah = preg_replace('/[^a-z0-9\.]/i', '', $blah);
请注意,我正在使用正则表达式的i
修饰符。 它匹配不区分大小写,因此我们不需要指定az
和 AZ
。
已被回答很多次但是:
function cleanit($input){
return preg_replace('/[^a-zA-Z0-9.]/s', '', $input);
}
$blah = cleanit("C$#@#.a534&");
你可以使用preg_replace
$text = preg_replace('/[' . preg_quote('CHARSYOUDONTWANT','/') . ']/','',$text);
在其他情况下,只有你想要的字符试试这个,
$text = preg_replace('/[^' . preg_quote('CHARSONLYYOUWANT','/') . ']/','',$text);
例如
$blah = "C$#@#.a534&";
$blah = preg_replace('/[' . preg_quote('$#@&','/') . ']/','',$blah);
echo $blah;
或者反过来做:
$text = preg_replace('/[^a-zA-Z0-9.]/','',$text);
http://php.net/manual/en/function.preg-replace.php
用空字符串替换所有无效字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.