我对preg_replace有点问题。我需要一个将所有字符转换为除[A-z][0-9]
和一些. ! ?
我可以做preg_match
,但这只是验证,我想要被替换。这不是为了放垃圾字符
<p>
和;[[;[p;[
在描述META TAG。
所以脚本必须像:
;")<br>kk23?! => brkk23?!
任何帮助将不胜感激:D
答案 0 :(得分:40)
$string = ';")<br>kk23?!';
$new_string = preg_replace("/[^A-Za-z0-9?!]/",'',$string);
echo $new_string;
留下字母,数字,空格,?!
/* 3 choices. Pick one you like! */
$str = preg_replace("/[^A-Za-z0-9?! ]/","",$str);
$str = preg_replace("/[^A-Za-z0-9?!\s]/","",$str);
$str = preg_replace("/[^A-Za-z0-9?![:space:]]/","",$str);
答案 1 :(得分:6)
$var=preg_replace('~[^A-Za-z0-9?.!]~','',$var);
不要忘记A-Za-z
和A-z
不相同
答案 2 :(得分:2)
快速解决方案如下:
if (preg_match('/^[\w\.]+$/', $str)) {
echo 'Str is valid';
} else
echo 'Str is invalid';
//字符串只包含a到z,A到Z,0到9和_(下划线)
\w - matches [a-zA-Z0-9_]+
希望它有所帮助。
答案 3 :(得分:1)
最简单的方法是做类似的事情:
只需在!
之后添加字符,请确保在需要时将其转义。
$string = "<br>kk23?!";
$string = preg_replace('/[^A-Za-z0-9 \?!]/', '', $string);
答案 4 :(得分:0)
更多访问此页面。我想更多的人会遇到同样的问题。更好的方法是尝试自己并获得所需。自定义你的或复制粘贴这个PHP并尝试它:
$sample_input = '&&*9?><<script>}cat-<html>ch(_P.,,mE.:;xc##e*p32t.ion $e){di+-($e->ge69tMesPHP _f0sage()3);}';
$output = ereg_replace("[^..........]", "", $sample_input);
echo "validate =".$output;
通过填写此内容来修改以获得您想要的内容:
$output = ereg_replace("[^.........]", "", $sample_input);
示例:如果您只想要小写,请执行以下操作:
$output = ereg_replace("[^a-z]", $sample_input);
带有空格的小写:
$output = ereg_replace("[^a-z ]", $sample_input);
等...... 这是一种简单的验证方法:
$username = ereg_replace("[^A-Z0-9_]", "", $username);
$fullname = ereg_replace("[^A-Za-z0-9., ]", "", $fullname);
$city = ereg_replace("[^A-Za-z -]", "", $city);
$phone = ereg_replace("[^0-9 +()-]", "", $phone);
$state = ereg_replace("[^A-Za-z -]", "", $state);
$zipcode = ereg_replace("[^0-9]", "", $zipcode);
$country = ereg_replace("[^A-Za-z -]", "", $country);
$gender = ereg_replace("[^mf]", "", $gender);
试试自己,希望会有所帮助...