php正则验证
‘壹’ php正则表达式验证
$r=preg_match('/^[a-zA-Z0-9]+$/','');
if($r)echo'success';
elseecho'fail';
正则说明:
^表示后面的内容必须在开头。
$表示前面的内容必须在结尾。
[]表示匹配其中的任意一种字符。
a-z表示从小写a到小写z。
+表示之前的内容可以是一个或多个。
其他:
如果允许为空,可以把+改成*,*表示之前的内容可以没有也可以是一个或多个。
如果要限定长度,可以把+改成{min,max},{min,max}表示之前的内容最小多少位,最大多少位,如{20,40}。
‘贰’ php 正则验证用户名
js中var reg=/(?:^\d*$|[^\u4e00-\u9fd5_0-9a-z]+)/gi;
php中$pattern = "/(?:^\d*$|[^\\x{4e00}-\\x{9f5a}_a-z0-9])/i";
以上都是匹配不满足条件的情况
‘叁’ php正则表达式来验证文字长度
preg_match_all函数用来进行正在表达式匹配的,你的语句中是把$str拆分为字符,存放在$match数组里面,你在语句中增加下来的语句可以明白其功能:
print_r($match);
此函数的详细解释见官方资料:
http://php.net/manual/zh/function.preg-match-all.php
不过呢,为了检测字符串的长度,可以使用strlen这样的函数,更加高效和快速。
‘肆’ php正则表达式验证用户名
//中文和英文结合而且6-20字符
$preg='/^[a-zA-Z\x{4e00}-\x{9fa5}]{6,20}$/u';
//英文、数字、下划线6-20位字符
$preg='/^[\w\_]{6,20}$/u';
过滤非法字符防止SQL注入漏洞,只能另说,对不同的接口和参数有针对性的过滤,没有通用的正则。
‘伍’ php正则匹配数字
式子:/^[a-zA-Z0-9]+$/u
释义:
"/":表示正则表达式的定义,固定写法。
"^":表示开头。
"[]":表示字符组。匹配所包含的任意一个字符。如,“[ab]”匹配“plain”中的“a”。
"a-z":表示匹配小写字母a-z的字母范围。
"A-Z":表示匹配大写字母A-Z的字母范围。
"0-9":表示匹配0-9的数字范围。
"+":表示匹配次数大于等于1。
"$":匹配输入行尾。如果设置了RegExp对象Multiline属性,$也匹配“ ”或“ ”之前的位置。
"u":最后的u是模式修饰符,严格的说可能叫预定义常量。表示使用unicode进行匹配。
(5)php正则验证扩展阅读:
正则表达式的特点是:
1. 灵活性、逻辑性和功能性非常强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制。
3. 对于刚接触的人来说,比较晦涩难懂。
由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到着名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。
‘陆’ 关于PHP正则密码验证
这不关编码的事。比如你的密码表单为<input name="pwd" />那: <?php preg_match('/^[_\w]+$/',$_POST['pwd'],$match); if(empty($match))die('密码不能乱来!明白?');?>
‘柒’ 请教PHP正则
?: 是个整体,这个意思是外面的括号仅仅起分组的作用,匹配结果不出现在 $1 $2 $3 ... 里面。
\+? 中的 ? 匹配0个至1个 +
(...)? 的 ? 同上,匹配括号中的内容0次到1次
补充:
通常情况下,正则表达式的()可以将匹配结果提取出来。
比如/^(\d+)-(\d+)-(\d+)$/ 这样的表达式可以匹配 "2010-03-01" 这样的字符串,执行匹配之后会将结果放在 $1 $2 $3 里面,$1的内容是2010, $2的内容是03,$3的内容是01。
括号里面开头加 ?: 就是跳过这个括号,也就是不提取其中内容,仅仅起分组的作用。如果用/^(?:\d+)-(\d+)-(\d+)$/ 匹配 "2010-03-01",$1的内容就是03,而不是2010了。
可以用以下程序验证:
<?php
preg_match('/^(\d+)-(\d+)-(\d+)$/', '2010-03-01', $matches);
print_r($matches);
preg_match('/^(?:\d+)-(\d+)-(\d+)$/', '2010-03-01', $matches);
print_r($matches);
‘捌’ php里面的正则判断问题
if(is_numeric($a)){
echo "yes";
}else{
echo "no";
}
is_numeric 检测变量是否为数字
‘玖’ 用PHP正则表达式判断
<?php
$message=$_POST['message'];
if(preg_match('/<script[^>]*>/',$message)){//匹配
echo'error';die;
}
?>
‘拾’ php正则验证。
$result=preg_replace("/[^:]*s*:s*([^:]*)/","$1","DomainName:QIGOU12.COM");
echo$result." ";