84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
var p=/(8[a-z]{3}0)+/; var str='8asd08asd08asd08asd0'; alert(str.replace(p,'*'))
这里默认的贪婪模式怎么都匹配到了呢?不是应该匹配4次么 里面的a-z的定位长度没作用呢 非贪婪是能匹配一个的
闭关修行中......
因为你用了+啊,(8[a-z]{3}0)这个片段重复一次及以上,会被匹配到一起的。你想要这一个片段匹配多次,改成这样就行了:
+
(8[a-z]{3}0)
var p=/8[a-z]{3}0/g;
贪婪模式并不是按你说的匹配4次,是把能匹配的都匹配到。所以,你这儿的贪婪匹配把整个str都匹配了,整个儿替换成*了。要实现你的效果:不贪婪,全局匹配就好。
var p=/(8[a-z]{3}0)/g; var str='8asd08asd08asd08asd0'; console.log(str.replace(p,'*'));
var p=/(8[a-z]{3}0)/g; var str='8asd08asd08asd08asd0'; alert(str.replace(p,'*'))
这样?返回**,是不是你要的结果?
从代码看 (8[a-z]{3}0) 这块内容至少匹配1次;经过贪婪匹配 8asd08asd08asd08asd0 会一次全都匹配;
8asd08asd08asd08asd0
如果想匹配4次就用
/8[a-z]{3}0/g
因为你用了
+
啊,(8[a-z]{3}0)
这个片段重复一次及以上,会被匹配到一起的。你想要这一个片段匹配多次,改成这样就行了:
贪婪模式并不是按你说的匹配4次,是把能匹配的都匹配到。所以,你这儿的贪婪匹配把整个str都匹配了,整个儿替换成*了。
要实现你的效果:不贪婪,全局匹配就好。
这样?返回**,是不是你要的结果?
从代码看 (8[a-z]{3}0) 这块内容至少匹配1次;
经过贪婪匹配
8asd08asd08asd08asd0
会一次全都匹配;如果想匹配4次就用