一、正则的概念
正则:规则字符串出现规律的表达式
<script>
/* 后面加上g,全局替换 */
var reg = /傻/g;
var p = "你傻呀,你怎么这么菜:你真是傻";
/* repLace() */
var res = p.replace(reg,"**")
console.log(res)
</script>
二、简单的正则
test() 获取字符串中是否包含的正则表达式匹配的字符
包含这个值返回true 不包含返回false
<script>
var reg = /1/;
var p = "12345";
console.log(res.text(p)) //ture
</script>
三、api
<script>
/* match,search,replace,spLit */
var p = "hello worldL";
/* i是忽略大小写 */
/* 正则表达式后面的为修饰符 */
var reg = /l/ig;
console.log(p.match('l'));
console.log(p.match(reg));
var regb = /垃圾/g;
var pp = "它是垃圾,见到垃圾就要扔了";
var res = (pp.replace(regb,"**"));
console.log(res)
console.log(pp.match(regb))
</script>
四、test和g的关系
Tips:test() 方法为局部匹配而生
`用test后面不要加g``
lastIndex:是当前表达式匹配内容的最后一个字符的下一个位置
<script>
var str = "aaha";
var reg = /a/g;
while(reg.test(str)){
console.log(reg.lastIndex)
/* 1,2,4 */
}
console.log(reg.test(str)) // 1
console.log(reg.test(str)) //2
console.log(reg.test(str)) //4
</script>
五、备选字符集
备选字符集:规定某一位字符的备选字符列表
- 特点:多选一
<script>
var reg = /上[海,天,去]/g
var str = "我要去上海,我要上去东方明珠,去上天";
console.log(str.replace(reg,"**"))
var regs =/中[国,共,华]/g;
var strr = "中国人民共和国成立了,中共很牛逼,大中华牛逼";
console.log(strr.replace(regs,"666"))
</script>
5-1连号的备选字符集
- [0-9]
- [a-z]
- [a-zA-Z]
- [0-9A-Za-z]
<script>
var str = "2345234jRalgjowEvdsSg";
var reg = /[0-9]/g;
console.log(str.replace(reg,"*"));
console.log(str.replace(/[a-z]/g,"*"));
console.log(str.replace(/[a-zA-Z]/g,"*"));
console.log(str.replace(/[0-9A-Za-z]/g,"*"));
</script>
5-2预定义字符集
- 针对常用的备选字符集提供的简化符号
- 量词:就是规定某一位字符出现的次数
<script>
{3,6} 三到六次
{3,} 三次以上*/
var reg = /\d{3,}/;
var str = "22334fsgdgdg";
console.log(reg.test(str))
</script>
6-1三个数字+天
<script>
/* 三个数字+天
123天
4324234 天*/
var reg = /\d{3,4}天/g;
var p = "2323天地介绍了附件435天";
console.log(p.replace(reg,"**"))
</script>
6-2不确定数量的量词
- + 1个,或1个以上 m>=1 {1,}
- * 0个或多个 {0,}
-
七、贪婪属性
<script>
/* 正则表达式默认是贪婪的 */
var str = "123456fsjgldieg";
var reg = /\d{3,6}/;
console.log(str.replace(reg,"*"));
/* 非贪婪模式,量词后面加? */
console.log(str.replace(/\d{3,6}?/,"*"))
</script>
八、匹配位置
^ 以什么开头
- $ 以什么结尾
<script>
var str = " hello world";
var s = "hello "
var reg =/^\s+/;
console.log(str.replace(reg,"*"))
var r =/\s+$/;
console.log(s.replace(r,"*"))
</script>