首先,有人可能觉得正则学了就忘了,有人觉得学的时候再查,如何更加方便的学习推荐一个小的工具配合文档一起学
https://regexper.com/
1.匹配非数字
var reg=/\D/g; var a='123'; a.replace(reg, "我"); //"123" var reg=/\D/g; var a='123.2'; a.replace(reg, "我"); //"123我2" var reg=/[^0-9]/g var a='123.2'; a.replace(reg, "我"); //"123我2"2.理解reg.exec(str);
匹配成功返回一个数组,匹配失败返回null
这里就说一下匹配成功返回的参数:共四个,分别是:
正确返回数组的至少四个参数 a[0]该正则尽最大可能匹配到的字符串a[1,2...] 括号中的分组捕获:一个子串在一个位置,有可能有好几个,那就在a[2]、a[3]...依次类推index匹配到的字符位于原始字符串的基于0的索引值input原始字符串
那就来看看几个例子吧:对于第一个正则其中(?:x)这个括号不能当做子串,是未捕获括号哦
先来图展示再测试:
4.var reg=/\brequire\s*\(\s*(["'])(.+?)\1\s*\)/g;
重点理解单词边界是什么?\b:就是匹配\w\W中的前一个
(.+?)这个子表达式中的.是匹配单字符(就是单个字符,比如一个a或一个‘我’),+就是多个当字符,+后面一个?就是将贪婪变成非贪婪哦,匹配尽量少个。
3.正则位置匹配
位置匹配学习好文推荐
