JavaScript部分常用的正则表达式

正则表达式的两种方式

  • 字面量创建
  • 构造函数创建
// 字面量  大多数情况下使用
var reg = /abc/;
//构造函数
var reg = new RegExp('asTudy', 'i');
console.log(reg.test("aasastudyy")); //true
  1. 加了i之后,增则匹配不再区分大小写
  2. 加了g之后,将执行全局匹配(默认匹配一次后停止)
  3. 加了m之后,将执行多行匹配(默认只有一行)
标志全称含义
gglobal全文搜索,不添加到话匹配到第一个停止
iignore case忽略大小写,默认大小写敏感
mmultip lines多行搜索
元字符
类型标志示例含义
字符类[][abc]a或b或c
反向类^[^abc]非a,b,c
范围类-[0-9]0-9之间到数字
预定义.[^\r\n]除回车换行之外的所有字符
预定义\d[0-9]数字字符
预定义\D[^0-9]非数字字符
预定义\s[\t\n\x0B\f\r]空白符
预定义\S[^\t\n\x0B\f\r]非空白符号
预定义类\w[a-zA-Z_0-9]单词字符
预定义\W[^a-zA-Z_0-9]非单词字符
边界^以……开头
边界$以……结束
边界\b单词边界
边界\B非单词边界
量词?出现0次或1次(最多一次)
量词+出现一次或者多次(至少一次)
量词*出现0次多少多次(任意次数)
量词{n}出现n次
量词{n,m}出现n次到m次
量词{n,}至少出现n次
正则表达式实战用法
  • 邮箱的JS正则表达式
var mailReg = /^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
  • 手机的JS正则表达式
var phoneReg = /^1\d{10}$/;
  • 身份证的JS正则表达式
var idCardReg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  • 姓名(汉字)的JS正则表达式
var nameReg = /^[\u4e00-\u9fa5]{2,4}$/; // 2-4位的汉字名字
  • 普通域名的JS正则表达式
var urlReg = /^(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*([\?&]\w+=\w*)*$/; // https或http协议的url
  • 用户名的JS正则表达式
var userNameReg = /^[A-Za-z0-9-_]*$/; // 用户名为数字英文下划线或短划线
  • QQ号的JS正则表达式
var qqReg = /^[1-9][0-9]{4,}$/;
  • 邮编的JS正则表达式
var mailReg = /^[1-9][0-9]{5}$/;

-HTML标签到JS正则表达式

var tagReg = /<[^>]+>/; //可以用来去掉html文本中的标签,得到纯文字
  • 日期的JS正则表达式
var dateReg = /^\d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/; //YYYY-MM-dd格式,短线可以视情况替换
  • 时间到JS正则表达式
var timeReg = /^([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$/; //HH:mm:ss格式,冒号可以视情况替换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值