1 创建和匹配
1-1 创建的两种方式
new RegExp() - 了解
<script>
// var 变量 = new RegExp("正则表达式","匹配模式"
var r = new RegExp(/a/,"g");
</script>
直接字面量
// var 变量 = /正则表达式/匹配模式
var reg = /a/g // 两个/里面的内容表示正则表达式
var str = "hellLo"
var reg = /l/ig
// i 忽略大小写 g 全局替换
console.log(str.replace(reg,"*"));
1-2 判断是否匹配
用于检测正则表达式是否匹配字符串的一部分,返回boolean值
<script>
var str = 'abcdf';
var reg = /abc/;
console.log(reg.test(str)); //true
</script>
2.字符集
2-2 备选字符集
定义:规定某一位字符的备选字符列表
[ ] :规定的是某一位字符的备选字符列表
特点:必须且只能多选一
var str ="上海,上天,上哪里去";
var reg =/上[海天]/g
console.log(str.replace(reg,"*")); //*,*,上哪里去
2-3 预定义字符集
定义:针对常用的备选字符集提供的简化符号
\d [0-9] : 任意数字
\w [0-9a-zA-Z_]: 任意数字、字母、下划线
\s : 空格
. : 表示 所有字符
[A-z] : 任意字母
var str = "_ashdl8976hdjs"
var reg = /\d/g;
var reg2 = /\w/g;
console.log(str.replace(reg,"*")); // _ashdl****hdjs
console.log(str.replace(reg2,"*")); // **************
2-4 转义字符
定义:遇到一些特殊的字符需要处理,可以在前面加上转义字符
在正则中 使用 \ 作为转义字符
\. 表示 .
\\ 表示 \
\/ 表示 /
3.量词
3-1 确定数量
{m} : 只出现m次
{m,n}: m<=reg<=n
{m,} : m<=reg
var pwd ="1233klshfjds" // 5-7位
var reg = /[0-9]{5,7}/g
var reg2 = /[0-9]{4,}/g
console.log(reg.test(pwd)); // false
console.log(reg2.test(pwd)) // true
3-2 不确定数量的
?: 0-1
+: reg>=1
*: reg>=0
var str ="jksdh2"
var reg = /\d+/
console.log(reg.test(str));
3-3 贪婪模式和懒惰模式
3-3-1 贪婪模式
// 给量词的情况下,默认取最大值,默认是贪婪的
var str = "19028448askdh545"
var reg = /\d{3,6}/
console.log(str.replace(reg,"*")); // *48askdh545
* 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配。
3-3-2 懒惰模式
// 懒惰模式 取最小值
var str = "82178212jkbcckj"
var reg = /\d{3,6}?/
console.log(str.replace(reg,"*")); // *78212jkbcckj
4、选择和分组
//选择 |
//分组 ( )
var str = "哪里,哪去能发多少积分"
var reg = /哪里|能发/g
console.log(str.replace(reg,"*")); //*,哪去*多少积分
5、指定匹配的位置
^: 开头
$: 结尾
/* 严格匹配 ^reg$ */
5-1 严格匹配 ^reg$
// 电话
var num = "13897932473123"
var reg = /^1[3-9]\d{9}$/
console.log(reg.test(num));
// 去除 开头的空格
var a =" hello";
var reg =/^\s+/;
var str =a.replace(reg,"");
console.log(str);
5-2 去掉字符串前后的空格
// 字符串的方法: trim() 去除字符串前后的空格
// 正则表达式: /^\s+|\s+$/g
6、非
[^abc]: 不包含abc
只获取字母
var str = "hello210874"
// 只获取字母
var reg = /[^a-z]/g
console.log(str.replace(reg,"")); //hello
过滤标签
var str = "<p>我是p标签</p>。<div>我是div</div>"
var reg = /<[^<>]+>/g
console.log(str.replace(reg,""));
只获取数字
var str = "https://movie.douban.com/subject/1292052/"
// 只获取数字
var reg = /[^\d+]/g
console.log(str.replace(reg,""));