打赏

正则表达式进阶

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>

 

posted @ 2018-02-07 10:00  孟繁贵  阅读(219)  评论(0编辑  收藏  举报
TOP