JS replace()方法替换变量(可以对变量进行全文替换)
2023-09-27 14:19:37 时间
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");
这里,利用 JS 的 RegExp 对象,将 g 参数单拿了出来,同时,正则的内容可以用变量来代替了!!!!
干的漂亮!!!!
又简单,又实用!
这里就完成了用 replace() 方法对变量进行全文替换。运气不错
怎么样,是不是不用自己写 replaceAll() 了呢!哈哈
相关文章
- Node.js 手册查询-5-Ejs 方法
- Node.js -- Router模块中有一个param方法
- Node.js进阶:5分钟入门非对称加密方法
- 【JS】怎样用原生JS实现jQuery的ready方法
- 微信小程序 - 父组件调用子组件的函数方法(像 Vue.js 中 ref 属性一样,直接 this.$refs.xx 获取子组件数据和方法)详细教程示例代码
- js字符串方法中replace()与toUpperCase()是否会更改原字符串问题
- JavaScript - vue.js / nuxt.js / uni-app / 微信小程序 js 时间戳与日期格式互转(时间戳转日期字符串格式,日期回转时间戳格式)支持转为日期字符串后自动补0
- 【宠粉通道】叫我讲解的一道前端JS面试题-灵魂三问:prototype?类的prototype是什么?对象的proto是什么
- JS——判断变量类型方法汇总
- js遍历 各种方法优缺点
- 添加网络js文件
- Node.js 常用命令
- Vue.js中this.$nextTick()的使用
- JS-002-修改元素属性(以按钮示例)
- js中的call()和apply()和bind()方法
- 用socket.io.js和express实现一个简单的对话框
- js单页hash路由原理与应用实战
- Node.js:Express 框架
- JS排序:localeCompare() 方法实现中文排序、sort方法实现数字英文混合排序
- js 补零方法,如果不足位数
- JS转为number的四种方法
- three.js例子本地部署
- 360极速浏览器UA怪异以及如何用js判断360浏览器
- JS 公共方法