创建正则表达式
var reg = /a/ig
// //间添加正则表达式内容,g表示全局,i忽略大小写
test
判断字符串是否复合正则表达式规则
<script>
// 规则字符串中字符出现规律的表达式
/* reg.test(str) */
var str = "hello";
var reg =/l/g;
console.log(str.replace(reg,"*"));//he**o
console.log(reg.test(str))//true
</script>
exec
判断字符串是否复合正则表达式规则并提取分组
分组的内容会有()括住,字符串符合条件就会依次排列在数组的[1]后
var string = '/api/addgood/3'
const res = /\/(api)\/getgood\/(\d+)/.exec(string)
console.log(res[2]) //3
备选字符集
定义:规定某一位字符的备选字符列表
特点:多选一
<script>
var str = "上海,上天,上哪里去"; //"*"
var reg = /上[海天]/g
console.log(str.replace(reg,"*"))//*,*,上哪里去
</script>
<script>
var reg =/[上天哪]/g
var str ="上海,哪里去,天";
console.log(str.replace(reg,"*"))//*海,*里去,*
</script>
备选字符的unicode号连续
一个数字[0-9]
一个小写字母[a-z]
一个大写字母[A-Z]
一个数字或字母[0-9a-zA-Z]
预定义字符集
针对常用的备选字符集提供的简化符号
[0-9] --> \d //一位数字
[0-9a-zA-Z_] -->\w //一位数字字母或下划线
\s //1位空字符:空格,tab,换行
. // 除换行外,其余所有字符
<script>
var str ="_jhfdl2323_";
var reg = /\d/g;
console.log(str.replace(reg,"*"))//_jhfdl****_
console.log(str.replace(/\w/g,"*"))//***********
console.log(str.replace(/./g,"*"))//***********
</script>
量词
确定数量
<script>
/* test() */
/*
量词 规则字符出现的次数
{m} 只出现m次
{m,n} m<reg<n
{m,} reg>m
*/
var pwd = "12115fdsfsd"; // 密码5-7num
var reg = /[0-9]{5,7}/;
console.log(reg.test(pwd));
</script>
不确定数量
<script>
/*
? 0-1 {0,1}
+ 大于1个 {1,}
* {0,}
*/
var str = "hje1";
var reg =/\d+/
console.log(reg.test(str))
</script>
贪婪模式和懒惰模式
贪婪模式 给量词的情况下 默认取最大值 默认是贪婪的
var str = "123456abc";
var reg = /\d{3,6}/;
console.log(str.replace(reg,"*"))//*abc
懒惰模式?
var str = "123456abc";
var reg = /\d{3,6}?/;
console.log(str.replace(reg,"*"))*456abc
选择和分组
//选择
| 读作"或"
//分组
()
选择
<script>
var str = "哪里,哪去能发多少积分";
console.log(str.replace(/哪里|能发/g,"*"))
</script>
分组
手机号:+86或0086 可有可无,最多1个
空字符 不限制个数
1
3,4,5,7,8 选其一
9位数字
(\+86|0086)?\s*1[34578]\d{9}
指定匹配位置
开头和结尾:^开头的xxx;$结尾的xxx
何时使用:仅匹配开头的规则和结尾的规则时使用 固定搭配:^正则表达式$—>表示从头到尾完整匹配 开头和结尾只出现正则表达式的内容
何时使用:只要验证时,必须前加^,后加$!
^\s+//匹配字符串开头的所有空字符
\s+$//匹配字符串结尾的所有空字符
var a =" hello";
var reg =/^\s+/;
var str =a.replace(reg,"");
console.log(str);
排除
//除了abc
[^abc]