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);
字符串中如果有中文符号也是会计数的,可以先替换掉中文符号