js正规概念与属性

js最初就是用来做表单验证的
什么是正规表达式:

  • regular expression js中RegExp类表示正则表达式 它是一个描述字符模式的对象

正则的作用:

  • 用来验证字符串是否符合规则
  • 从字符串中获取一部分符合规范的内容

创建正则对象:

1.通过new关键字来声明一个正则对象

  • 第一个参数:正则的主体, 字符串
  • 第二个参数 :修饰符 字符串
  • i 不区分大小写
  • g 全局匹配
  • m 换行匹配
 var str = new RegExp("hello","ig");

2.通过字面量来赋值

  • var str = /主体/修饰符;
 var str = /are/i;

test:

  • 格式:正则对象.test(“字符串”);
  • 返回值:布尔值
  • 功能:校验字符串是否符规则
var str = /are/i;
str.test("hello word");

exec:

  • 格式:
    正则对象.exec(“字符串”)
  • 功能:
  1. 在匹配字符串,如果匹配成功,则返回的是一个数组,数组中存放的是第一个符合条件的内容 ;如果匹配不成功,则返回是null
  2. 如果有全局修饰符g,则exec第二次捕获会从第一次捕获的位置开始向后去查找。
  3. 直到找不到了,返回null
  4. 再次捕获时,则从头开始。
var str = "bre you ok Bre";
 var reg = /bre/ig;
  alert(reg.exec(str));

字符串的函数:
match()

  • 格式:字符串.match(正则)
  • 功能:在字符串中匹配符合规则的内容
  • 返回值:数组,匹配成功的内容;匹配没有成功,返回null
lin = "im fine ok";
console.log(lin.match(/im/));	
console.log(lin.match(/Im/i)); //加i修饰词支持大写,不加i修饰词表示为null;

replace()

  • 格式: 字符串.replace(oldStr/正则,newStr);
  • 功能: 将新的字符替换掉旧的字符
lin = "xbx im fine ok ";
console.log(lin.replace(/x/ig,"*"));

split()

  • 格式: 字符串.split(“分割字符”/正则)
  • 功能: 用分隔符将字符串进行分割
  • 返回值: 分割后的字符串组成的数组
 lin = "Thank you im fine ok ";
console.log(lin.split(/ /g));

search()

  • 功能: 找到符合条件的第一个字符的位置(下标)
  • 格式: 字符串.search(字符串/正则)
  • 返回值: 找到则返回下标;未找到则返回-1
 lin = "Thank you im fine ok ";
 console.log(lin.search(/k/i));//空格算一个占位,全局只显示第一个的下标,未找到时返回-1,

元字符

元字符:
组成正则的基础符号,具有特殊的含义。

  • " . " 匹配单个的任意字符
var just = "just do it";
var a = /jus.t/;
alert(a.test(just));

[范围] 匹配单个范围内的字符

  • [0-9] 匹配一个数字 范围为 0-9
var just = "just do it";
var a = /jus[0-9]t/;
alert(a.test(just));	
  • [0-9a-zA-Z_]
 var just = "just do it";
 var a = /jus[0-9a-zA-Z_]
 alert(a.test(just));	

[^范围] 匹配任意一个除了范围内的字符

  • [^0-9] 匹配任意一个非数字的字符 = [0-9]取反
var just = "just do it";
var a = /jus[^0-9]t/;
alert(a.test(just));
  • \w 匹配单个的字母,数字和下划线 = [0-9a-zA-Z_]
 var just = "just do it";
 var a = /jus\wt/;
 alert(a.test(just));
  • \W 匹配单个非字母数字下划线
 var just = "just do it";
 var a = /jus\Wt/;
 alert(a.test(just));
  • \d 匹配单个数字 = [0-9]
 var just = "just do it";
 var a = /jus\dt/;
 alert(a.test(just));
  • \D 匹配单个非数字 [^0-9]
var just = "just do it";
var a = /jus\Dt/;
alert(a.test(just));

空白字符:

  • \s 匹配一个任意的空白字符 空格 /n /t
  • \S 匹配一个任意的非空白字符
 var just = "just do it";
 var a = /jus\st/;
 var a = /jus\St/;
 alert(a.test(just));

锚字符:

  • ^ 行首匹配 必须以它后面字符开头
  • $ 行尾匹配 必须以它后面字符结尾
var just = "just do it";
var a = /^j/;
var a = /t$/;

限定元字符:(x:表示任意的单个字符)
格式:

  • x? 匹配0个或者1个x
  • x+ 匹配至少一个x字符
  • x* 匹配任意一个x字符
  • x{m,n} 匹配至少m个字符,最多n个 包含n
  • x{m} 匹配m个字符
  • x{m,} 匹配m个–多个
  • () 小括号括起来的字符串会被当成一个字符去处理
  • | 类似或
var str = "Lolita, light of mymy life, fire of my loins";
var reg = /^l.*s$/i; //表示 以l开头,并且以这个l结尾  只匹配l 
var reg = /b*/ig;
var reg = /^\w{3}$/; 
var reg = /^\w{3,5}$/; 
var reg = /(my){2}/;

练习:

//1.判断压缩包;zip rar 7z 
 var a = "考研资料.zip";
 var sk = /\.(zip|rar|7z)$/;
 document.write(sk.test(a));
 
//2.判断是否为11位手机号码
 var a = "13323456789";
 var sk = /^1\d{10}$/;
 document.write(sk.test(a));

//4.判断年份;
var a = "2000";
var sk = /^[1-2]\d{2}[0-9]$/;
document.write(sk.test(a));

//5.以英文开头,长度6-11
var a = "a_12342";
var sk = /^[a-zA-Z]\w{5,10}$/;
document.write(sk.test(a));

//6.匹配整数,true:-11 +11 1,2,3 false: 11.1 -01
var a ="0";
var sk = /(^(-|\+)?[1-9]\d*$)|^0$/;
document.write(sks.test(as));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值