JS replace()方法替换变量(可以对变量进行全文替换)
2018-03-14 17:46
681 查看
转至: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() 了呢!哈哈
相关文章推荐
- JS replace()方法替换变量(可以对变量进行全文替换)
- JS replace()方法如何替换变量
- SpringMVC注解@Autowired和@Qualifier 自动注入[根据类型注入] @Autowired 可以对成员变量、方法以及构造函数进行注释, @Qualifier 的
- 可以进行自动补全的python的eclipse配置方法
- js正则表达式/replace替换变量方法
- PHP 变量定义和变量替换的方法
- String是final类,常规情况下其值是不可变的。但是可以通过非常规方法——反射进行修改
- js replace(a,b)之替换字符串中所有指定字符的方法
- Java中子类是否可以继承父类的static变量和方法而呈现多态特性
- Java基础---基础加强---增强for循环、自动拆装箱及享元、枚举的作用、实现带有构造方法、透彻分析反射的基础_Class类、成员变量的反射、数组参数的成员方法进行反射、数组的反射应用
- 忽略替换变量的三种方法
- (转)JavaScript escape() 函数(该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。)
- 当同步方法被锁住时,非同步方法是否可以访问同步方法中改变的变量?
- JAVA环境变量的配置方法【希望可以帮助你】【个人实测没问题】
- Python——maketrans和translate方法,可以用来从string中替换和删除字符
- final关键字可以用来修饰类、方法、变量、参数,不能修饰抽象类和接口
- js replace(a,b)之替换字符串中所有指定字符的方法
- Java 中,为什么在静态方法中可以调用的方法、可以使用的成员变量必须是静态的?
- 编程中经常发现使用未初始化变量,编译器原来可以处理进行默认初始化
- Qt优雅地结束线程(两种方法都是用Mutex锁住bool变量进行修改,然后由bool变量控制耗时动作的退出,即正常退出)