日常开发中,常常会用到一些简单常用的正则表达式,用于判断一些常见的情况

下边,就列出五种(验证用户名,密码强度,邮箱格式,手机号格式和身份证格式)常见的情况

分成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)的更多相关文章

  1. WCF身份验证之用户名密码认证

    WCF支持多种认证技术,例如Windowns认证.X509证书.Issued Tokens.用户名密码认证等,在跨Windows域分布的系统中,用户名密码认证是比较常用的,要实现用户名密码认证,就必须 ...

  2. 将用户名密码邮箱制成表格,以用户名为q结束

    print("输入用户名.密码.邮箱长度不能超过20个") s="" while True: v = input("用户名:") if v= ...

  3. Git使用详细教程(2):配置用户名和邮箱

    首先,说下最常用的设置用户名和邮箱的命令 git config --global user.name 'xxx' //设置用户名 git config --global user.email 'xxx ...

  4. vue中将验证表单输入框的方法写在一个js文件中(表达式验证邮箱、身份证、号码、两次输入的密码是否一致)

    文章目录 1.实现的效果 2.编写的js文件(这里写在了api文件下) 3.在vue页面中引入(script) 4.页面代码 1.实现的效果 20220606_154646 2.编写的js文件(这里写 ...

  5. ThinkPHP的自动验证常用的正则

    ThinkPHP的自动验证常用的正则   ThinkPHP的自动验证机制是为了进行表单数据验证,验证可以支持function. callback.confirm.equal.unique和regex, ...

  6. 【WCF】使用“用户名/密码”验证的合理方法

    我不敢说俺的方法是最佳方案,反正这世界上很多东西都是变动的,正像老子所说的——“反(返)者,道之动”.以往看到有些文章中说,为每个客户端安装证书嫌麻烦,就直接采用把用户名和密码塞在SOAP头中发送,然 ...

  7. WCF服务安全控制之netTcpBinding的用户名密码验证【转】

    选择netTcpBinding WCF的绑定方式比较多,常用的大体有四种: wsHttpBinding basicHttpBinding netTcpBinding wsDualHttpBinding ...

  8. jquery里正则的使用方法及常用的正则验证

    本文是一篇关于jquery使用正则来验证输入,及一些常用验证规则的基础文章,适合新手. 假设我们的网页里有这样的一个表单: <input id="aijquery" type ...

  9. WCF 安全性之 自定义用户名密码验证

    案例下载 http://download.csdn.net/detail/woxpp/4113172 客户端调用代码 通过代理类 代理生成 参见 http://www.cnblogs.com/woxp ...

随机推荐

  1. [原]Jenkins(十六) jenkins再出发之jenkins+robot+blue ocean+svn

    jenkins version: 部署省略..(如有需要请查看本博客jenkins系列的文档) 新的jenkins需要先填写administratorpassword (如下图)找到下面红色的路径打开 ...

  2. E - Stones 优先队列

    来源1896 Because of the wrong status of the bicycle, Sempr begin to walk east to west every morning an ...

  3. Linux 的基本操作(系统的安装)

    操作系统的安装: 操作系统的安装 这次安装系统也是基于CentOS的安装.把光盘插入光驱,设置bios光驱启动.进入光盘的欢迎界面. 其中有两个选项,可以直接按回车,也可以在当前界面下输入 linux ...

  4. web端MSF搭建

    去购买一个廉价VPS  阿里X/tx学生服务器然后选择Ubuntu系统http://jingyan.baidu.com/article/2c8c281dabacad0008252aa6.html安装M ...

  5. python学习之旅(五)

    Python基础知识(4):基础数据类型之字符串(Ⅰ) 字符串是 Python 中最常用的数据类型.可以使用引号“ ”来创建字符串,只要为变量分配一个值即可.例如: name=“Alice” 注:字符 ...

  6. VS调试时JSON格式文件加载不了

    在使用VS2012进行调试时发现加载数据为JSON格式的都加载不了,应该是MIME类型没有正确设置的问题. 直接通过浏览器地址栏访问时会收到提示,根据提示在IIS EXPRESS的安装目录下面执行一条 ...

  7. Prime Flip AtCoder - 2689

    发现我们每次区间取反,相邻位置的正反关系只有两个位置发生改变 我们定义bi为ai和ai-1的正反关系,即ai=ai-1时bi=0,否则bi=1,每次取反l~r,b[l]和b[r+1]会发生改变 容易发 ...

  8. js 限制输入框只能输入数字的问题

    常规情况下,input设置为 type=‘number’  可以避免汉字,字符,字母,空格的输入,但是不能避免小减号 以及小键盘的减号-,加号+的输入, 可以考虑 监控 输入框的oninput事件,方 ...

  9. 源码安装Nginx以及用systemctl管理

    一.源码安装Nginx: 先安装gcc编译器(安装过的可以忽略) [root@localhost ~]# yum -y install gcc gcc-c++ wget 进入src目录 [root@l ...

  10. Java 基础 IO

    一,前言 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据 ...