js正则表达式

正则表达式的创建
  1. 字面量形式:
    var re = /abc/;
    var re2 = /abc/i;
    var re3 = /abc/g;
    
  2. RegExp构造函数:
    new RegExp('abc');
    new RegExp(/abc/);
    new RegExp(/abc/, 'gi');
    

正则表达式属性
var re = /a|b/ig;	// i: ignoreCase, g: global, m: multiline
var str = 'ab';

re.lastIndex;		// 0, 仅在g模式下起作用,否则为0
re.ignoreCase;		// true
re.global;			// true
re.multiline;		// false
re.source;			// 'a|b' , source表示模式文本
re.exec(str);		// ["a", index: 0, input: "ab", groups: undefined]
re.lastIndex;		// 1
re.exec(str);		// ["b", index: 1, input: "ab", groups: undefined]
re.exec(str);		// null
re.lastIndex;		// 0;


var re = /a|b/ig;
re.lastIndex;		// 0
str.match(re);		// ["a", "b"]
re.lastIndex;		// 0

特殊字符及含义
字符含义
\通常用作转义特殊字符,自身也是转义字符
^匹配输入的开始
$匹配输入的结束
*匹配前一个表达式零次或多次
+匹配前一个表达式一次或多次
?匹配前一个表达式零次或一次,等价于{0, 1}
正则表达式默认是贪婪匹配,即尽可能多的匹配字符;如果在量词*、+或?后紧跟一个?,就表示是非贪婪匹配
.匹配除换行符外的任意字符
(x)这里的括号称为捕获括号,内容称之为捕获组,在模式中可以使用\a表示第a个捕获组;在正则表达式替换中使用$a表示第a个捕获组;
(?:x)与上边相反, 这是一个非捕获组,常用于将操作符用于子表达式而不仅仅是某个字符;
/foo{1, 2}/匹配最后一个字符‘o’1或2次;/(?:foo){1, 2}/匹配字符串‘foo’1或2次
x(?=y)先行断言;匹配后边跟着y的所有x
(?<=y)x后行断言;匹配前边字符是y的所有x
x(?!y)正向否定断言;匹配后边不是y的所有x;如/star(?!t)/匹配star不匹配start
xy
{n}匹配前一个字符n次
{n, m}匹配前一个字符n至m次
[abc]一个字符集合,表示匹配括号中的任意字符
[^abc]一个反向字符集合,表示匹配任意不在该集合的字符
\d匹配一个数字
\D匹配一个非数字
\s匹配一个空白字符,包括空格、换行符、制表符、换页符
\w匹配一个单字字符(字母、数字、下划线),等价于[0-9A-Za-Z]
正则表达式相关的方法

在这里插入图片描述


参考文献:

  1. https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions#special-non-word
  2. http://deerchao.net/tutorials/regex/regex.htm#greedyandlazy
  3. https://www.runoob.com/js/js-regexp.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值