• JS replace()方法替换变量(可以对变量进行全文替换)


    JS replace()方法替换变量(可以对变量进行全文替换)

    将一段文本中的符合条件的所有字符串替换

    最终代码先呈上来

    // string.replace(new RegExp(key,'g'),"b");
    const regex = //media/g/;
    
    // let res = regex.test('/media/');
    
    let sTr = "<p><img src="/media/goods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="/media/goods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>";
    let res = sTr.replace(new RegExp(regex, 'g'), 'http://127.0.0.1:8000/media/');
    console.log(res);
    
    //<p><img src="http://127.0.0.1:8000/media/oods/images/2_20170719161405_249.jpg" title="" alt="2.jpg"/></p><p><img src="http://127.0.0.1:8000/media/oods/images/2_20170719161414_628.jpg" title="" alt="2.jpg"/></p><p><img src="http://127.0.0.1:8000/media/oods/images/2_20170719161435_381.jpg" title="" alt="2.jpg"/></p>
    

    转至:http://blog.sina.com.cn/s/blog_6552200b0102ve60.html

    事情是这样的:

    我要用 JS 替换一个多行文本的关键字

    正常,没有变量的时候应该是这样:

    把 a 替换成 b:

    string.replace("a","b");

    以上只能替换第一个匹配的,要全文匹配应该用正则表达式:

    string.replace(/a/g,"b");

    正则加个参数 g ,表示全文匹配。

    但现在,我要替换的不是 a 这个字符了,而是从外面传进来的一个变量:

    var key;

    我可以这么写:

    string.replace(key,"b");

    这只能替换第一个匹配的,要全文匹配就遇到难题了:

    string.replace(/key/g,"b");

    这样写是不行的,变量 key 传不到正则里面去。。。头疼啊

    于是我在网上找啊找。

    我先找 replace 替换变量,有说用加号拼接正则的,好像也失败了。。。看得我晕晕乎乎的。

    我无意中发现 java 有个 replaceAll() 方法,我想如果可以这样不就好了吗:

    string.replaceAll(key,"b");

    这样就不用正则了,变量就能进去了。

    然后发现 JS 里没有 replaceAll() 这个方法。。

    我靠,,然后我又查 JS 怎么能够实现 replaceAll 这个方法,网上各种自己写函数啊,,看得我也晕晕乎乎的。

    后来我的思路又回到了怎样把变量传到 replace() 方法里面去。

    哎~功夫不负有心人,看到一篇文章:

    http://www.jb51.net/article/40269.htm

    文章的最后,给出了 JS 里面正则表达式的另一个使用方法,那就是:

    string.replace(new RegExp(key,'g'),"b");

    这里,利用 JS 的 RegExp 对象,将 g 参数单拿了出来,同时,正则的内容可以用变量来代替了!!!!

    干的漂亮!!!!

    又简单,又实用!

    这里就完成了用 replace() 方法对变量进行全文替换。运气不错

    怎么样,是不是不用自己写 replaceAll() 了呢!哈哈

  • 相关阅读:
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    第一次博客作业
    Java web的读取Excel简单Demo
    Java一些常见的出错异常处理
    JSTL截取字符串
    DATAX动态参数数据传递
    DataX实现oracle到oracle之间的数据传递
    DataX安装环境搭建
  • 原文地址:https://www.cnblogs.com/wenqiangit/p/10485245.html
Copyright © 2020-2023  润新知