转至: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");
这里,利用 JS 的 RegExp 对象,将 g
参数单拿了出来,同时,正则的内容可以用变量来代替了!!!!
 
干的漂亮!!!!
又简单,又实用!
 
这里就完成了用 replace() 方法对变量进行全文替换。运气不错
怎么样,是不是不用自己写 replaceAll() 了呢!哈哈

JS replace()方法替换变量(可以对变量进行全文替换)的更多相关文章

  1. JS replace()方法-字符串首字母大写

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. replace()方法有两个参数,第一个参数是正则表达式,正则表达式如果带全局标志/g,则是代表替换 ...

  2. js replace方法第二个参数,远不止你想的那么强大

    js replace() 方法,想必大家都不陌生. 定义和用法: replace()方法用于在字符串中用一些字符替换另一些字符,或者替换一个与正则表达式匹配的子串. stringObject.repl ...

  3. Js replace() 方法笔记

    最近捣鼓着学习Js,发现replace()真的很有用,替换功能杠杠的棒. 接下来看看我遇到的问题: 有两个随机给出的字符串,字符串1'xxxxxx',字符串2'====T'(这两个用作示例,其他为随机 ...

  4. JS replace方法

    var str = '1abc2defg3hijk'; str.replace(/\d/g,function(a,b,c,d){ console.log("a:",a);// 匹配 ...

  5. js replace全部替换的方法

    1.JS replace()方法替换变量(可以对变量进行全文替换) string.replace(new RegExp(key,'g'),"b"); 2.封装 String.pro ...

  6. js replace 与replaceall实例用法详解

    这篇文章介绍了js replace 与replaceall实例用法详解,有需要的朋友可以参考一下stringObj.replace(rgExp, replaceText) 参数 stringObj 必 ...

  7. JavaScript的replace方法与正则表达式结合应用讲解

    大家好!!今晚在华软G43*宿舍没什么事做,把javascript中replace方法讲解一下,如果讲得不对或不合理是情理之中的事,因为我不是老鸟,也不是菜鸟,我也不知道我当底是什么鸟??呵~~ re ...

  8. 转js resplace方法使用

    作者: hezhiwu5#163.com    时间:2007-3-22 大家好!!今晚在华软G43*宿舍没什么事做,把javascript中replace方法讲解一下,如果讲得不对或不合理是情理之中 ...

  9. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

随机推荐

  1. JDBC数据库常用操作(mysql)

    JDBC英文名称:JavaDataBaseConnectivity中文名称:java数据库连接简称:JDBCJDBC是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组 ...

  2. iOS 之UIBezierPath

    代码地址如下:http://www.demodashi.com/demo/11602.html 在之前的文章中,由于用到过UIBezierPath这个类,所以这里就对这个类进行简单的记录一下,方便自己 ...

  3. C语言-EOF和feof()判断文件结尾的区别

    今天获取一个图片内容时, fopen("aaaaaa.png", "r"), 读取完文件头就停止了, 后来模式改为 "rb" 就可以了, 特 ...

  4. 利用Python对文件进行批量重命名——以图片文件为例

    效果如下:0001号用户的第 i 张图片 代码: import os class ImageRename(): def __init__(self): self.path = 'C:/Users/lb ...

  5. RPC框架-yar学习

    RPC采用客户机/服务器模式. 请求程序就是一个客户机,而服务提供程序就是一个服务器.首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息.在服务器端, 进程保持睡眠状态直到调 ...

  6. VS2013-解决VS2013 4996错误

    由于微软在VS2013中不建议再使用C的传统库函数scanf,strcpy,sprintf等,所以直接使用这些库函数会提示C4996错误,在源文件中添加以下指令就可以避免这个错误提示. )

  7. 推送本地文件夹到github

    1.首先鼠标右键,Git Init Here将文件夹初始化为仓库 2.打开github桌面版 3.点击添加本地仓库 4.填好summary和description并提交 5.push到自己的githu ...

  8. javascript消息框

    JavaScript有三种消息框: 警告框:alert() alert("我是警告框!!") 确认框:confirm() function show_confirm() { var ...

  9. java - day13 - ImplementDemo

    接口实现.继承等关系的运用案例P.S: 强制转换,看引用变量指向的对象与目标数据间的关系.可运用 "引用变量 instanceof 目标数据" 来判断是否可用强转 package ...

  10. 【Mac系统 + Python + Django】之开发一个发布会系统【Django模型(三)】

    上一部分给大家介绍Django的视图. 接下来继续来了解Django框架,来看第三部分,此部分是对数据库的操作. 目录: 一.设计系统表 二.admin后台管理 三.基本数据访问(SQLite数据库) ...