zoukankan      html  css  js  c++  java
  • JS replace()方法替换变量(可以对变量进行全文替换)

    转至: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() 方法里面去。
    哎~功夫不负有心人,看到一篇文章:
    文章的最后,给出了 JS 里面正则表达式的另一个使用方法,那就是:
    string.replace(new RegExp(key,'g'),"b");
    这里,利用 JSRegExp 对象,将 g 参数单拿了出来,同时,正则的内容可以用变量来代替了!!!!
     
    干的漂亮!!!!
    又简单,又实用!
     
    这里就完成了用 replace() 方法对变量进行全文替换。运气不错
    怎么样,是不是不用自己写 replaceAll() 了呢!哈哈
  • 相关阅读:
    1022. D进制的A+B (20)
    1032. 挖掘机技术哪家强(20)
    1001. 害死人不偿命的(3n+1)猜想 (15)
    结构-06. 复数四则运算(15)
    结构-05. 有理数均值(20)
    结构-04. 通讯录的录入与显示(10)
    结构-03. 平面向量加法(10)
    软考错题合集之13-05-AM
    软考笔记第八天之法律发规与标准化知识
    软考笔记第七天之程序设计语言与语言处理程序基础
  • 原文地址:https://www.cnblogs.com/jasonlam/p/7070604.html
Copyright © 2011-2022 走看看