<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>1</p><p>2</p>
<script>
let text = '<p>1</p><p>2</p>';
let pattern0 = /<p>.*<\/p>/;
let pattern = /<p>.*?<\/p>/;
console.log('贪婪匹配',pattern0.exec(text));
console.log('懒惰匹配',pattern.exec(text));
text = "mom and dad and baby";
pattern = /mom( and dad( and baby))/;
console.log('分组',pattern.exec(text));
pattern = /mom(?: and dad)( and baby)/;
console.log('非捕获分组',pattern.exec(text));
text = '<p>1</p><p>2</p>';
pattern0 = /<(p)>.*<(\/\1)>.*<\1>.*<\2>/;
console.log('分组的回溯引用',pattern0.exec(text));
text = "mom and dad and baby";
pattern = /mom(?<dad_baby> and dad(?<baby> and baby))/;
let result = pattern.exec(text);
console.log('命名捕获分组',pattern.exec(text));
console.log(result.groups.dad_baby);
console.log(result.groups.baby);
text ='我喜欢你 我喜欢 我喜欢我 喜欢 喜欢你';
pattern = /喜欢(?=你)/g;
var a;
console.log('正向先行断言', a=pattern.exec(text),'index',a?.index);
console.log('正向先行断言',a=pattern.exec(text),'index',a?.index);
console.log('正向先行断言',a=pattern.exec(text),'index',a?.index);
pattern = /喜欢(?!你)/g;
console.log('反向先行断言', a=pattern.exec(text),'index',a?.index);
console.log('反向先行断言',a=pattern.exec(text),'index',a?.index);
console.log('反向先行断言',a=pattern.exec(text),'index',a?.index);
console.log('反向先行断言',a=pattern.exec(text),'index',a?.index);
pattern = /(?<=我)喜欢(?=你)/g;
console.log('正向后行断言', a=pattern.exec(text),'index',a?.index);
console.log('正向后行断言',a=pattern.exec(text),'index',a?.index);
pattern = /(?<!我)喜欢(?!你)/g;
console.log('反向后行断言', a=pattern.exec(text),'index',a?.index);
console.log('反向后行断言',a=pattern.exec(text),'index',a?.index);
let str = `
<ul>
<li>
<a>肖生克的救赎</a>
<p>上映日期: 1994-09-10</p>
</li>
<li>
<a>阿甘正传</a>
<p>上映日期: 1994-07-06</p>
</li>
</ul>`;
const reg = /<li>.*?<a>(.*?)<\/a>.*?<p>(.*?)<\/p>/gs;
let result0;
let data = [];
while (result0 = reg.exec(str)) {
data.push({ title: result0[1], time: result0[2] });
}
console.log(data);
pattern = /(?=.*?[a-z])(?=.*?[A-Z]).{8,}/gm;
pattern0 = /.{8,}(?<=[a-z].*?)(?<=[A-Z].*?)/gm;
text =`
Admin123456
pZUJLUpTL2
Tnut2eWPN1
wJxpVhVYi3
UySRo49ps
Ig7AHzZ0J
oYHMDdHCK9
yiyWKQnWo2
gTZEEkVrj1
8Ij12340as
wdfqe#wefDdf444
Codejiaonang123
CodeJiaonang@qq1
111111abc11ABc
CodeJiaonang123
qwe
8848
123456
asd123
Adm123
Asd123
wjleif932
admin123
123admin
123asd123
ADMIN123()
编号89757
888888888info
masterxiao123
888888888A
`
for (let i =0 ;i<16;i++){
a=pattern.exec(text);
console.log('规范密码方式一', a?a[0]:'没有了');
}
for (let i =0 ;i<16;i++){
a=pattern0.exec(text);
console.log('规范密码方式二', a?a[0]:'没有了');
}
</script>
</body>
</html>