我想检查字符串是否包含空格,下划线,数字和字符。
我创建了以下代码。但是当我添加任何其他特殊字符或连字符时,这不起作用。
例如,取这个字符串。现在这是无效的。当我从字符串有效中删除#%#%时。
$string = 'a1uper___ w__#%#%';
if(preg_match('/[a-zA-Z_]/',$string)){
echo 'valid';
}
else{
echo 'not valid';
}
我也尝试过以下模式:
'/[a-zA-Z_]/'
'/^[a-zA-Z_]/'
'/[a-z][A-Z][_]/',...
请帮助
答案 0 :(得分:2)
你需要像下面这样做: -
string("3 hello PC!")
输出: - https://eval.in/806911
注意: -
<?php
$string = 'a1uper___ w__ ';
if(preg_match('/^[a-zA-Z_\/\s\d]+$/i',$string)){
echo 'valid';
}
else{
echo 'not valid';
}
现在a-zA-Z is for characters
_ for underscores
/s for spaces
d for digits
会检查字符串是否包含除上述内容之外的任何内容。
如果字符串只有上面提到的内容,那么'/^[a-zA-Z_\/\s\d]+$/i'
则为valid
。
这就是原因: -
invalid
有效(只有字符和下划线)
a1uper___ w__
无效(因为有不匹配的字符a1uper___ w__#%#%
)
参考: -
答案 1 :(得分:0)
尝试以下方法:
$string = 'a1uper___ w__#%#%';
if(preg_match('/[\'"^!@#$%&*()£+}{~?><>,|=¬\\-]/',$string)){
echo 'not valid';
}
else{
echo 'valid string';
}