正则表达式

正则表达式

一、创建

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;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值