我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

众所周知的事情是:jsreplace()函数是个很奇葩的存在,对于不懂正则表达式的广大吃瓜群众来说,jsreplace()只能替换到第一个匹配项目,而不是像php来说,可以把所有的匹配的字符都替换掉。而node继续了这一光荣传统,正常的replace()只能替换掉第一个匹配项目。

苏南大叔:nodejs如何随机替换字符串?js字符串替换方案大全 - js-replace
nodejs如何随机替换字符串?js字符串替换方案大全(图2-1)

在本文中,苏南大叔将要描述几个js的字符替换使用场景。分别对应于以下几种场景:

只替换第一个匹配项目

var str="111211";
console.log(str.replace("1","苏南"));

替换全部匹配项目

var str="111211";
console.log(str.replace(new RegExp("1","gm"),"苏南"));

或者:

var str="111211";
console.log(str.replace(/1/gm, "苏南"));

js替换全部匹配项目,是要动用正则表达式的...

苏南大叔:nodejs如何随机替换字符串?js字符串替换方案大全 - 替换结果
nodejs如何随机替换字符串?js字符串替换方案大全(图2-2)

随机替换部分匹配项目

下面的例子中,字符串是男汉子女汉子都是汉子,脚本会随机选取2个汉子字样换成同学字样。当然,鉴于脚本的写法比较多,大家就可以随意根据实际情况改编了。下面的脚本是苏南大叔自己调试的,主要目标是在nodejs里面,对文章内容进行随机替换。(好吧,俺承认:就是做seo的时候用到的。)

newsn.net:这里是【评论】可见内容
var content = "男汉子女汉子都是汉子";
var find = "汉子";
var next = "同学";
var max = 2;
console.log(content.replace_random(find, next, max));

苏南大叔在这里,就说说inarray这个自定义函数,普通的js数组判断是否含有某个key的话,其实可以用in关键词做判断。但是,这里判断的是value,所以苏南大叔自己做了个表述比较明确的自定义函数。

相关链接

node判断数组是否包含某个value。请参考下面这篇文章:

总结

jsnode一脉相承,很多代码都是可以通用的。本文中的几个例子,可以在浏览器里面运行,也可以在node脚本里面运行,效果都是一样一样的。

更多node相关经验文章,请点击苏南大叔的博客文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   js    node