<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
<script type="text/javascript">
/*
正则表达式中特殊字符的含义(数量词(Quantifiers)):
x(?=y) :只有当 x 后面紧跟着 y 时,才匹配 x。(x后面是y)
x(?!y) :只有当 x 后面不是紧跟着 y 时,才匹配 x。(x后面没有y)
*/
//运用:你现在想在aaaabab选择b前面的a
const re = /\w(?=b)/g;
const text = 'aaaabab';
console.log(text.match(re));//["a", "a"]
//突然你又想在aaaabab选择不是b前面的a
const re2 = /\w(?!b)/g;
const text2 = 'aaaabab';
console.log(text2.match(re2));//["a", "a", "a", "b", "b"]
/*
正则表达式中特殊字符的含义(数量词(Quantifiers)):
x*?、x+? : * 和 + 一样匹配前面的模式 x,然而匹配是最小可能匹配。
*/
//贪婪匹配
const re3 = /x+/g;
const text3 = 'xxxx';
console.log(text3.match(re3));//["xxxx"]
//非贪婪匹配
const re4 = /x+?/g;
const text4 = 'xxxx';
console.log(text4.match(re4));//["x", "x", "x", "x"]
const re5 = /x{1,4}?/g;//能一个绝对不会四个
const text5 = 'xxxx';
console.log(text5.match(re5));//["x", "x", "x", "x"]
/*
(难度较大)将100000000变成科学计数法,100.000.000
*/
let text6 = '100000000';
const re6 = /(?=(\B)(\d{3})+$)/g;
console.log(text6.replace(re6, '.'));
</script>
</html>