php 常用正则表达式

1.拼配获取 {{  }} 中间的内容

$strPattern = "/(?<={{)[^}}]+/";
$arrMatches = [];
preg_match_all($strPattern,$arr, $arrMatches);

2.获取字符串中所有的中文

preg_match_all("/[\x80-\xff]+/", $arr, $chinese);

3. 验证手机号

 $phone='';
 $preg_phone='/^1[34578]\d{9}$/ims';
 if(preg_match($preg_phone,$phone)){
     echo 1;
 }else{
     echo 0;
 }

4.邮箱

php 

(1)$regex= '/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/';
(2)$regex="/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i";

上面两个正则表达式都可以用来匹配邮箱,匹配方式如下:

$str = "email@example.com";

$result = preg_match($regex,$str);

js 

var email = this.value;
 //var t  = /^[A-Za-zd0-9]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/;		
var reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
		if(reg.test(email)){
			alert("邮箱格式正确");
		}else{
			alert("邮箱格式不正确");
		}

5.去掉字符串中不是中文不是数字不是字母的

$str='2016,北京欢迎您 from around you..';
echo $str;
preg_match_all('/[\x{4e00}-\x{9fff}||a-z0-9]+/u', $str, $matches);

$str = join('', $matches[0]);
echo '</br>';
echo $str;

6.密码验证

	    if (!preg_match('/(?=.*[a-z])(?=.*\d)(?=.*[#@!~%^&*])[a-z\d#@!~%^&*]{8,20}/i',$password))
	    {
	    	echo '密码必须是8-20位数字字母和特殊字符组成';die;
	    }
	    if (!preg_match('/^[_0-9a-z]{8,20}$/i',$password))
	    {
	    	echo '密码必须是8-20位数字字母组成';die;
	    }

//密码必须包含大小写字母/数字/符号任意两者组合
$a = '/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)]|[\(\)])+$)([^(0-9a-zA-Z)]|[\(\)]|[a-z]|[A-Z]|[0-9]){8,20}$/';
$phone = '123456123#';
if (!preg_match($a, $phone)) {
   echo 'bhg';
}else{
	echo 'hg';
}

 

7.php获取字符串中的中文字符的个数 参考:https://blog.csdn.net/u012114437/article/details/101025414

$str      = '123abcDEF测试的事发地点';
$length    = strlen(preg_replace('/[\x00-\x7F]/', '', $str));
$arr['en'] = strlen( $str) - $length; //(非中文)
$arr['cn'] = intval($length / 3); // 编码GBK,除以2 (中文)

print_r($arr);

字符串中如果有中文符号也是会计数的,可以先替换掉中文符号 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值