正则表达式

正则表达式

1.什么是正则?

用于匹配有规律的字符串

2. 正则创建方式
 //1). 正则字面量表示
        var reg = /box/igm;  //创建了正则表示对象
        //i :ignore 忽略大小写
        //g :global 全局
        //m :换行
        console.log(reg);
        console.log(typeof (reg));
 //2). 构造函数的方式创建正则
        var reg = new RegExp("box", "igm");


3. 正则校验方法
 test()  //条件满足返回true,否则就false
 exec()  // 条件满足返回数组,否则就返回 null
4.支持正则字符串方法
search()  //找到了返回下标,找不到返回-1
match()   // 条件满足返回数组,否则就返回 null
split()   //通过指定的格式,切割成为数组
replace()  // 替换
. 任意字符串
 var str = "this is a box BOX Box";
 var reg = /b.x/
  console.log(reg.test(str));

* 任意次数
var pattern = /g.*gle/; //.* 匹配0到多个字符
var str = "gsfsafasgle"
  console.log(pattern.test(str));

[ ] : 表示字符可以出现的范围
 var reg = /g[a-z]gle/i
 var str = "gAgle";
  console.log(reg.test(str));

  var reg = /g[az]gle/i
  var str = "gzgle";
  console.log(reg.test(str));

  var reg = /g[a-z0-9]gle/i
  var str = "gzgle";
   console.log(reg.test(str));


   // [^a-z]  不是a-z, ^在中括号里,表示取反
   var reg = /g[^a-z0-9]*gle/i
   var str = "g@gle";
   console.log(reg.test(str));

+ 至少1次
 var reg = /g[a-z]+gle/;
 var str = "gagle"
 console.log(reg.test(str));

? 0次或1次
var reg = /g[a-z]?gle/;
var str = "gagle"
console.log(reg.test(str));

\w [a-zA-Z0-9_]
//  \w  [a-zA-Z0-9_]
var reg = /g\w+gle/;
 var str = "g_gle"
 console.log(reg.test(str));

// \W [^a-zA-Z0-9_]
var reg = /g\W+gle/;
var str = "g gle"
 console.log(reg.test(str));

\d [0-9]
var reg = /\d+/g;
var str = "aaaaa1a";
console.log(reg.test(str));

// \D [^0-9]
 var reg = /\D+/g;
 var str = "aaaaa1a";
  console.log(reg.test(str));

{n} 固定次数
 var reg = /\d{5}/;
 var str = "123111111";
 console.log(reg.test(str));
{n,} 最少n次,最多不限
var reg = /\d{3,}/;
var str = "1211111111111";
console.log(reg.test(str));
{n,m} 最少n次,最n不限
var reg = /\d{3,8}/;
var str = "1234444444444444444";
console.log(reg.test(str));

^ 开始位置 $ 结尾位置
 var reg = /^\d{5}$/;
 var str = "123456789";
 console.log(reg.test(str));


 var reg = /^\d{5,}$/;
 var str = "123456789";
 console.log(reg.test(str));

 var reg = /^\d{5,8}$/;
 var str = "123456789";
 console.log(reg.test(str));
手机
var reg = /^[1][3456789]\d{9}$/
console.log(reg.test(13812345678));

QQ
var reg = /^[1-9]\d{4,10}$/;
console.log(reg.test(83589742));
\s
var str = "     我     就是 帅 哥 !  ";
//删除全部的恐怖
console.log(str.replace(/\s/g, ""));
//删除开始与结束位置的空白
console.log(str.replace(/^\s+/, "").replace(/\s+$/, ""));
| --> ||
 var pattern = /google|baidu|bing/;  // | : 匹配三个中的其中一个字符串
 var str = "googl2e bai3du;bingl"
 console.log(pattern.test(str));

()

var pattern = /(google){4,8}/;
var str = "googlegooglegooglegoogle"
console.log(pattern.test(str));


 var pattern = /8(.*)8/;
 // var str = "this is 8google8 baab 8ggg8";
 // 8google8 baab 8ggg8
 // console.log(str.match(pattern));
// console.log(RegExp.$1); //"google8 baab 8ggg"

?: 非捕获性
var reg = /^(?:[a-z]+)\s(?:[0-9]{4})$/i;
var str = "google 2016";
console.log(reg.exec(str));
// console.log(RegExp.$1);
m 换行
var pattern = /^\d+/gm;
// var str = "1,baidu98\n2,google99\n3,bing100";
// console.log(str);
// console.log(str.replace(pattern, "#"));


//\[]
// >  >
// \  转义
// var str = ".[/b]"
// var reg = /\.\[\/b]/;
// console.log(reg.test(str));

邮政编码(共6位数字, 第一位不能为0)
 var reg = /^[1-9]\d{5}$/

 // 电子邮件(xxxx@xxx(.xxx) +)

 // var reg=/\w+@\w+\.\w+/ig
 // var str1 = "zh.an.san@1000phone.com"
 // var str2 = "zhansan@1000phone.com"
 // var str3 = "zh.an@1000phone.com.cn"
 // var reg=/^\w+(\.\w+)*@\w+(\.\w+)+$/ig;

手机号(13或14或15或18开头的11位数字)
// var reg=/^1[3458]\d{9}$/
// var  reg=/^1[3-9]\d{9}$/g

用户名(只能使用数字字母下划线, 且数字不能开头, 长度在6-15位)
 var reg=/^[a-z_]\w{5,14}$/i
身份证
var reg=/^[1-9]\d{16}[\d|x]$/i
console.log(reg.test('43042420011212123X'));

图片文件格式
var  str=/\.(jpg|gif|png|jpeg|webp)$/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值