在上一篇文章中主要整理了下JavaScript中正则相关内容,为了以后方便查询先贴上一网上已经整理好的一这张图,主要包含了一些基础用法和一些转义字符的含义。这里为了强化下自己弱弱的正则还是把自己不太熟悉容易弄错的几个拿出来看看。
image.png
-
?匹配前面的模式 0 或1次。 如果?紧跟在数量词 *、+、? 或 {}时会使数量词变为非贪婪,即匹配次数最小化; 否则匹配次数尽量最大化。
'helloworld'.match(/\w+?/g); // ["h", "e", "l", "l", "o", "w", "o", "r", "l", "d"]
'helloworld'.match(/\w+/g); // ["helloworld"]
- 非重复字符的匹配
// 这里是匹配img三个字符的随机组合但是不能够重复。
var reg = /^(?:([img])(?!.*\1))+$/g;
reg.test('igg'); // false
这里主要要注意的是 ?! 和 ?: 字符,?! 表示仅匹配不被指定跟随,?:匹配不会捕获匹配项。这些字符通常用在 () 中。
- 提取捕获到的字符
有时候我们可以使用正则来提取匹配到的字符,一般可以使用字符串的replace方法。
例如:我想提取到字符串 https://www.jianshu.com/p/eca3143b80f0 中最后的eca3143b80f0这一串字符。通过正则可以使用下面的方法:
// 提取目标字符串中的 eca3143b80f0
var str = 'https://www.jianshu.com/p/eca3143b80f0';
var resStr = str.replace(/^[\w:\/\.]+\/(\w+)$/gi, '$1');
console.log(resStr);












网友评论