js.4.20

正则表达式

一、创建

  • 1.字面量 /表达式/修饰符

var reg1=/abc/g;//匹配一个字符串中是否包含abc g:global(全局)
console.log(reg1);
console.log(typeof reg1);//object

  • 2、new关键字 构造函数

//var reg2=new RegExp(‘表达式’,‘修饰符’)
var reg2=new RegExp(‘abc’,‘g’);
console.log(reg2);

二、属性和方法

var reg1=/a/g;
var str=‘abcabcabc’;
var str2=‘ABCABCABC’;

一)属性

  • 1、constructor 对创建正则表达式对象的函数的应用
    console.log(reg.constructor)
  • 2、prototype 向对象添加属性和方法 原型
    console.log(RegExp.prototype)
  • 3、global 判断是否设置了 “g” 修饰符
  • 4、ignoreCase 判断是否设置了"i"修饰符
  • 5、multiline 判断是否设置了"m"修饰符
  • 6、source 返回正则表达式的匹配模式表达式
  • 7、lastIndex 用于规定下次匹配的起始位置

二)方法

  • 1、exec() 检索字符串中指定的值。返回找到的值,并确定其位置
    console.log(reg1.exec(str));

  • 2、test()检索字符串中指定的值。返回true或false

console.log(reg1.test(str));//true
console.log(reg1.test(str2));//false

  • 3、toString()返回正则表达式的字符串

console.log(reg1.toString());

三、修饰符

  • 1、i 忽略大小写 ignoreCase

var reg2=/a/i;
console.log(reg2.test(str2));//true

  • 2、g 全局匹配global

console.log(str1.replace(reg1,‘H’));//Hbcabcabc
var reg3=/a/gi;
console.log(str1.replace(reg3,‘H’));//HbcHbcHbc
console.log(str2.replace(reg3,‘H’));//HBCHBCHBC

  • 3、m多行匹配 multiline

var str3=‘abc\nabcabc’;
var reg5=/a/gm;
console.log(str3.replace(reg5,‘M’));

四、模式之范围

  • 1、[字符族] 查找每个范围内的字符

var reg1=/acb/;
console.log(reg1.test(“abcdefg”));//false

  • 2、[abc] 查找[]之间的任何字符

var reg2=/[acb]/;
console.log(reg2.test(“a”));//true
console.log(reg2.test(“ab”));//true
console.log(reg2.test(“abdhehekeku”));//true

  • 3、[^abc] 查找任何不在[]之间的字符。 排除

var reg3=/[^acb]/;
console.log(reg3.test(“a”));//false
console.log(reg3.test(“acb”));//fasle
console.log(reg3.test(“gghkyunguym,jkyuh”));//true

  • 4、[0-9] 查找任何从 0到9的数字

var reg4=/[0-9]/;
console.log(reg4.test(“6789”));//true
var reg5=/[0-5]/
console.log(reg5.test(“6789”));//false

  • 5、[a-z] 查找任何从小写 a 到 小写 z的字符
  • 6、[A-Z] 查找任何从大写 A 到 大写 Z的字符
  • 7、[A-z] 查找任何从大写 A 到 小写 z的字符
  • 8、 (red|green|blue) 查找指定的选项 或

var reg6=/(a|b|c)/;
var reg7=/abc/;
var reg8=/([a]|[b]|[c])/;
console.log(reg6.test(“hello a”));//true
console.log(reg7.test(“hello a”));//false

五、模式之元字符

  • 1、拥有特殊含义的字符 \
  • 2、. 查找单个字符,除了换行和行结束符以外的任意字符

var reg1=/./;
console.log(reg1.test(“abcdefg”));//true

  • 3、\w 查找数字、字母及下划线。
  • 4、\W 查找非单词字符。
  • 5、\d 查找数字。
  • 6、\D 查找非数字字符。
  • 7、

// \s 查找空白字符。
// \S 查找非空白字符。
// \b 匹配单词边界。
// \B 匹配非单词边界。
// \0 查找 NULL 字符。
// \n 查找换行符。
// \f 查找换页符。
// \r 查找回车符。
// \t 查找制表符。
// \v 查找垂直制表符。
// \xxx 查找以八进制数 xxx 规定的字符。
// \xdd 查找以十六进制数 dd 规定的字符。
// \uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
注:中文 [\u4e00 -\u9fef]

六、模式之量词 限定符 {}

  • 1、n{X} 匹配包含 X 个 n(连续) 的序列的字符串。
    例如,/a{2}/ 不匹配 “candy,” 中的 “a”,但是匹配 “caandy,” 中的两个 “a”,且匹配 “caaandy.” 中的前两个 “a”。

  • 2、n{X,Y} X 和 Y 为正整数。前面的模式 n 连续出现至少 X 次,至多 Y 次时匹配。
    例如,/a{1,3}/ 不匹配 “cndy”,匹配 “candy,” 中的 “a”,“caandy,” 中的两个 “a”,匹配 “caaaaaaandy” 中的前面三个 “a”。注意,当匹配 “caaaaaaandy” 时,即使原始字符串拥有更多的 “a”,匹配项也是 “aaa”。

  • 3、n{X,} X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配。
    例如,/a{2,}/ 不匹配 “candy” 中的 “a”,但是匹配 “caandy” 和 “caaaaaaandy.” 中所有的 “a”。

// n+ 匹配任何包含至少一个 n 的字符串。 n{1,}
// n* 匹配任何包含零个或多个 n 的字符串。 n{0,}
// n? 匹配任何包含零个或一个 n 的字符串。 n{0,1}

七、模式之定位符

  • 1、n$ 匹配任何结尾为 n 的字符串
    var reg1 = /abc$/; //匹配以abc结尾的字符串
  • 2、^n 匹配任何开头为 n 的字符串
    var reg2 = /^abc/; //匹配以abc开头的字符串 console.log(reg2.test(“cabcabc”));
  • 3、 ?=n 匹配任何其后紧接指定字符串 n 的字符串。
    var reg8=/ab(?=a)/gi;
  • 4、!=n 匹配任何其后没有紧接指定字符串 n 的字符串。
    var reg9=/ab(!=a)/gi;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值