正则表达式进阶
1、单词替换(知识点:\b)
var s = 'this is is haha';
//替换单词is
var sNew = s.replace(/\bis\b/g,'IS');
console.log(sNew)
2、去掉http协议的jpg文件的协议头(知识点:分组(),$1,1表示第一个括号)
var s = 'http://img.host.com/images/a.jpg';
//去掉http协议的jpg文件的协议头
var sNew = s.replace(/http:(\/\/.+\.jpg)/,'$1');
console.log(sNew)
3、日期格式化(知识点:分组(),反向引用$1(捕获分组的内容),或者[])
var s = '2006/09/03';
//日期格式化 修改为月日年
var sNew = s.replace(/^(\d{4})[/-](\d{2})[/-](\d{2})$/,'$2-$3-$1');
console.log(sNew)
4、[]构建一个简单的类(字符类),[abc]把a或者b或者c归为一类。
5、^构建一个反向的类(字符类),[^abc]不是a或者b或者c的内容。
6、范围类:如[a-z]表示a-z的26个英文字母。
7、test方法时正则表达式不要加g属性(因为会受到lastIndex属性影响)。
8、字符串的search方法的第一个参数若是正则表达式的话,有无g属性返回的结果都是一样的(返回第一个匹配的位置)。
9、replace方法(注意使用字符串参数时不会全部替换)
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>replace</title>
</head>
<body>
<script type="text/javascript">
var s = 'a1b2c1';
//字符串替换--参数为字符串
var sNew = s.replace('1', 'Q');
console.log(sNew) //aQb2c1
//字符串替换--参数为正则
var sNew1 = s.replace(/1/g, 'Q');
console.log(sNew1) //aQb2cQ
</script>
</body>
</html>
作者:孟繁贵 Email:meng010387@126.com 期待共同进步!