正则笔记需要自取
?=###: 表示已 ### 开头的内容
<!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>
<script>
var string = "#ffbbad #Fc01DF #FFF #ffE";
var regex = /#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g
console.log(string.match(regex));
// 匹配时间
// 23:59
// 02:07
// 7:9
// var regex = /^([02][0-9]|[2][0-3]:[0-5][0-9])/
// var regex = /^([02][0-9]|[2][0-3]:[0-5][0-9])/
// console.log(regex.test("23:59")); // true
// console.log(regex.test("02:07")); // true
// 匹配日期
// 2022-12-26
// var regex = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][1-9]|3[0-1])/
// console.log(regex.test("2022-12-26")); // true
// 匹配id
// var string = '<div id="container" class="main"></div>';
// var regex = /id=".*?"/
// console.log(string.match(regex)[0]); // match方法返回一个数组在返回的数组中选中下标获取自己想要的值
// 替换字符串
// var string = 'hello'
// var newArr = string.replace(/^|$/g, '@');
// console.log(newArr);
// 多行匹配模式
// var result = "I\nlove\njavascript"
// var newArr = result.replace(/^|$/gm, '#')
// console.log(newArr);
// 匹配某个字符前插入
// var string = 'hello'
// var newArr = string.replace(/(?=l)/g, '#')
// console.log(newArr);
// 在某个字符以外的字符插入
// var string = 'hello'
// var newArr = string.replace(/(?!l)/g, 'www')
// console.log(newArr); // wwwhwwwellwwwowww
// // 千分分割
// // 先进行最后一个三位数的分割
// var string = '12345678'
// var newArr = string.replace(/(?=\d{3}$)/g, ',')
// console.log(newArr); // 12345,678
// // 在每三位分割
// var str = string.replace(/(?=(\d{3})+$)/g, ',')
// console.log(str); // 12,345,678
// // 匹配非开头的情况
// var arr = '123456789'
// var newStr = arr.replace(/(?!^)(?=(\d{3})+$)/g, ',')
// console.log(newStr); // 123,456,789
// // 匹配非数字开头非数字结尾
// var num = '12345678 123456789'
// var newNum = num.replace(/(?!\b)(?=(\d{3})+\b)/g, ',')
// console.log(newNum); // 12,345,678 123,456,789
// 字符替换
// var arr = '2022-12-28'
// var newArr = arr.replace(/(\d{4})-(\d{2})-(\d{2})/g, "$3/$2/$1")
// console.log(newArr);
// 去掉字符串前后空格(函数trim用法)
// var arr = ' footer '
// var str = arr.replace(/^\s+|\s+$/g, '')
// console.log(arr); // footer
// console.log(str); // footer
// // 匹配html标签(成对标签)
// // 匹配一个开标签,可以使用正则 <[^>]+>,
// // 匹配一个闭标签,可以使用 <\/[^>]+>,
// // var regex = /<([^>]+)>[\d\D]*<(\/[^>]+)>/
// var regex = /<([^>]+)>[\d\D]*<\/\1>/
// var str1 = '<title>regular expression</title>'
// var str2 = '<p>laoyao bye bye</p>'
// var str3 = "<title>wrong!</p>";
// var Arr = console.log(regex.test(str1)); // true
// var Arr = console.log(regex.test(str3)); // false
// 正则验证
// 1,验证某个字符串中是否存在数字(search()方法)
// search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
// indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
// var str = 'sq1dcgjdk/'
// var regex = /\d/
// console.log(!!~str.search(regex)); // true // search()找到后stringObject 中第一个与 regexp 相匹配的子串的起始位置。 没找到返回-1
// ~为取反位运算符 ~2 = -3 (true)
// 2,验证某个字符串中是否存在数字(test()方法)
// console.log(regex.test(str)); // true
// 3,验证某个字符串中是否存在数字(match()方法)
// console.log(str.match(regex));
// 替换
// 1, 日期替换
// var data = '2023-01-05' // 更换成 2023/01/05
// var regex = data.replace(/-/g, '/')
// console.log(regex);
// \b 是单词边界,具体就是 \w 与 \W 之间的位置,也包括 \w 与 ^ 之间的位置,和 \w 与 $ 之间的位置。
// replace方法解析
var arr = '2,3,6'
var str = arr.replace(/(\d+),(\d+),(\d+)/, '$3 = $2 + $2')
console.log(str);
</script>
</body>
</html>