常用验证正则:用户名、密码、邮箱、手机号、身份证(PHP和JavaScript)
日常开发中,常常会用到一些简单常用的正则表达式,用于判断一些常见的情况
下边,就列出五种(验证用户名,密码强度,邮箱格式,手机号格式和身份证格式)常见的情况
分成PHP版本和JavaScript两个版本。
其实,两种语言的正则是完全一样的,只是相关函数的使用略有不同。
PHP版本
<?php
// 验证用户名是否合法,必须是以字母开头,只能包含字母数字下划线和减号,4到16位
function checkUserName($username)
{
if (preg_match('/^[A-Za-z]{1}[A-Za-z0-9_-]{3,15}$/', $username)) {
return 1;
} else {
return 0;
}
} echo checkUserName('abcde12345-_a'); // 验证密码强度,6-16位,,至少有一个数字,一个大写字母,一个小写字母和一个特殊字符,四个任意组合
function checkPassword($password)
{
if (preg_match('/(?=^.{6,16}$)(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*]).*$/', $password)) {
return 1;
} else {
return 0;
}
} echo checkPassword('CCCc@#1234567890'); // 验证邮箱是否合法,必须有@,前边最少2个字符,字母或数字开头,域名部分最少1位,后缀可以是一级也可以是二级,最少两位
function checkEmail($email)
{
$email = strtolower($email);// 全部转小写(邮箱不区分大小写)
if (preg_match('/^[a-z0-9]{1}[a-z0-9_-]{1,}@[a-z0-9]{1,}(\.[a-z]{2,})*\.[a-z]{2,}$/', $email)) {
return 1;
} else {
return 0;
}
} echo checkEmail('abc_def-g@abc.com.cn'); // 验证手机号是否合法
function checkPhone($phone)
{
if (preg_match('/^1[345678]{1}\d{9}$/', $phone)) {
return 1;
} else {
return 0;
}
} echo checkPhone('15512345678'); // 验证身份证号是否合法
// 身份证号:前两位表示地区,所以第一位不可能是0,而第7、8两位是年份的前两位,也不可能是0,最后一位除了10个数字以外还可能是X|x
function checkIdCard($idcard)
{
if (preg_match('/^[1-9]{1}\d{5}[1-9]{2}\d{9}[Xx0-9]{1}$/', $idcard)) {
return 1;
} else {
return 0;
}
} echo checkIdCard('210801199010012031');
JavaScript版本
// 验证用户名是否合法,必须是以字母开头,只能包含字母数字下划线和减号,4到16位
function checkUserName(username)
{
if (/^[A-Za-z]{1}[A-Za-z0-9_-]{3,15}$/.test(username)) {
return 1;
} else {
return 0;
}
} console.log(checkUserName('abcde12345-_a')); // 验证密码强度,6-16位,,至少有一个数字,一个大写字母,一个小写字母和一个特殊字符,四个任意组合
function checkPassword(password)
{
if (/(?=^.{6,16}$)(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*]).*$/.test(password)) {
return 1;
} else {
return 0;
}
} console.log(checkPassword('CCCc@#1234567890')); // 验证邮箱是否合法,必须有@,前边最少2个字符,字母或数字开头,域名部分最少1位,后缀可以是一级也可以是二级,最少两位
function checkEmail(email)
{
email = email.toLowerCase();// 全部转小写(邮箱不区分大小写)
if (/^[a-z0-9]{1}[a-z0-9_-]{1,}@[a-z0-9]{1,}(\.[a-z]{2,})*\.[a-z]{2,}$/.test(email)) {
return 1;
} else {
return 0;
}
} console.log(checkEmail('abc_def-g@abc.com.cn')); function checkPhone(phone){ if (/^1[34578]\d{9}$/.test(phone)) {
return 1;
} else {
return 0;
}
} console.log(checkPhone('15512345678')); // 验证身份证号是否合法
// 身份证号:前两位表示地区,所以第一位不可能是0,而第7、8两位是年份的前两位,也不可能是0,最后一位除了10个数字以外还可能是X|x
function checkIdCard(idcard)
{
if (/^[1-9]{1}\d{5}[1-9]{2}\d{9}[Xx0-9]{1}$/.test(idcard)) {
return 1;
} else {
return 0;
}
} console.log(checkIdCard('210801199010012031'));
常用验证正则:用户名、密码、邮箱、手机号、身份证(PHP和JavaScript)的更多相关文章
- WCF身份验证之用户名密码认证
WCF支持多种认证技术,例如Windowns认证.X509证书.Issued Tokens.用户名密码认证等,在跨Windows域分布的系统中,用户名密码认证是比较常用的,要实现用户名密码认证,就必须 ...
- 将用户名密码邮箱制成表格,以用户名为q结束
print("输入用户名.密码.邮箱长度不能超过20个") s="" while True: v = input("用户名:") if v= ...
- Git使用详细教程(2):配置用户名和邮箱
首先,说下最常用的设置用户名和邮箱的命令 git config --global user.name 'xxx' //设置用户名 git config --global user.email 'xxx ...
- vue中将验证表单输入框的方法写在一个js文件中(表达式验证邮箱、身份证、号码、两次输入的密码是否一致)
文章目录 1.实现的效果 2.编写的js文件(这里写在了api文件下) 3.在vue页面中引入(script) 4.页面代码 1.实现的效果 20220606_154646 2.编写的js文件(这里写 ...
- ThinkPHP的自动验证常用的正则
ThinkPHP的自动验证常用的正则 ThinkPHP的自动验证机制是为了进行表单数据验证,验证可以支持function. callback.confirm.equal.unique和regex, ...
- 【WCF】使用“用户名/密码”验证的合理方法
我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然 ...
- WCF服务安全控制之netTcpBinding的用户名密码验证【转】
选择netTcpBinding WCF的绑定方式比较多,常用的大体有四种: wsHttpBinding basicHttpBinding netTcpBinding wsDualHttpBinding ...
- jquery里正则的使用方法及常用的正则验证
本文是一篇关于jquery使用正则来验证输入,及一些常用验证规则的基础文章,适合新手. 假设我们的网页里有这样的一个表单: <input id="aijquery" type ...
- WCF 安全性之 自定义用户名密码验证
案例下载 http://download.csdn.net/detail/woxpp/4113172 客户端调用代码 通过代理类 代理生成 参见 http://www.cnblogs.com/woxp ...
随机推荐
- 解决JS(Vue)input[type='file'] change事件无法上传相同文件的问题
Html <input id="file" type="file" accept=".map" onchange="uplo ...
- Excel反序排列
实际工作中有这样一个需求,将Excel列表中所有的条目进行反序排列,有人说这还不简单直接选中某一列按照这列排序(升序或降序)就可以了. 但问题是这里没有可以参考的列,进行排序. 比如: 想转换为: 那 ...
- nw.js---开发一个百度浏览器
使用nw.js开发一个简单的百度浏览器就很简单了,只需要在配置里面写入: { // "main": "index.html", "main" ...
- nginx_ssl证书双向认证以及负载均衡配置
#user nobody;worker_processes 1; #error_log logs/error.log;#error_log logs/error.log notice;#error_l ...
- JAVA课程课后作业之使用递归完成回文
一.思路 1.我的想法是利用数组的做法来进行,先是用scanner录入一个String类 2.然后就是将String转化成char数组 3.递归的就是第一个和最后一个对比,然后第一个加一,最后一个减一 ...
- node 把文件封装一层文件夹
把 pages 下面的单个js文件,封装上一个文件夹 var glob = require("glob"); const fs = require("fs-extra&q ...
- 16.vue-cli跨域,swiper,移动端项目
==解决跨域:== 1.后台 cors cnpm i -S cors 2.前端 jsonp 3.代理 webpack: myvue\config\index.js 找 proxyTable proxy ...
- [tldk][dpdk][dev] TLDK--基于dpdk的用户态协议栈传输层组件简单调研
如题,以下是一份简单的快速调研. TLDK: Transport Layer Development Kit 一 什么是TLDK transport layer development kit 处理t ...
- day5_函数的参数
http://www.nnzhp.cn/archives/154 一.函数在调用的时候,可以传入参数,有形参和实参 形参: 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元 ...
- you-get模块
You-Get是一个基于 Python 3 的下载工具.使用 You-Get 可以很轻松的下载到网络上的视频.图片及音乐. 转载https://www.cnblogs.com/wangchuanyan ...