最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

使用JS中的Replace()方法遇到的问题小结

来源:懂视网 责编:小采 时间:2020-11-27 21:50:34
文档

使用JS中的Replace()方法遇到的问题小结

使用JS中的Replace()方法遇到的问题小结:今天在写pc客户端自动化打包脚本的时候遇到遇到了几个问题,虽然是小问题,但是也卡了一段时间,所以决定记录一下。 js的replace()方法是用于替换某些内容,它可以接收两个参数,第一个是一个被替换的正则表达式对象或者一个字符串,第二个可以是将要替换成的
推荐度:
导读使用JS中的Replace()方法遇到的问题小结:今天在写pc客户端自动化打包脚本的时候遇到遇到了几个问题,虽然是小问题,但是也卡了一段时间,所以决定记录一下。 js的replace()方法是用于替换某些内容,它可以接收两个参数,第一个是一个被替换的正则表达式对象或者一个字符串,第二个可以是将要替换成的

今天在写pc客户端自动化打包脚本的时候遇到遇到了几个问题,虽然是小问题,但是也卡了一段时间,所以决定记录一下。

js的replace()方法是用于替换某些内容,它可以接收两个参数,第一个是一个被替换的正则表达式对象或者一个字符串,第二个可以是将要替换成的内容或者函数,将要替换成的内容须是一个字符串。我在执行的时候遇到的报错是:Cannot read property ‘replace' of undefined。具体代码如下:

var fs=require("fs")
var infoPlistFile = osxFolder + '/Contents/Info.plist';
var infoPlist = fs.readFile(infoPlistFile);
fs.writeFile(infoPlistFile, infoPlist.replace(/Pexip Infinity Connect/gm, $scope.manifest.name));

当执行这段代码的时候得到的报错是无法获取未定义的属性replace,开始不知道问题出在哪里,然后试着打印出被替换的文件infoPlist,发现是null,然后就知道是定义infoPlist那里出现问题,修改成fs.readFileSync之后发现就没有这个报错了,但是又有一个新的报错:replace is not a function

查找了一下相关资料,说明对应的变量不是字符串,而是其他的类型,所以我打印了一下infoPlist的类型,打印出来的是object,所以问题是出在这里,因为infoPlist的类型不对,所以导致了报错,于是增加了处理成字符串的操作,于是就可以了

var infoPlistFile = osxFolder + '/Contents/Info.plist';
var infoPlist = readFile(infoPlistFile).toString();
writeFile(infoPlistFile, infoPlist.replace(/Pexip Infinity Connect/gm, $scope.manifest.name));

另外我在自己写demo做测试的时候还发现,如果没有一个变量来接收的话,replace()方法是不起作用的,如:

var str="Hello World";
str.replace(/World/g, "dxy");
console.log(str);

这个时候打印出来的str还是”Hello World”,是没有替换的,这里应该用一个变量来作为接收,替换原来的变量,如:

var str="Hello World";
var a=str.replace(/World/g, "dxy");
console.log(a);

这个时候打印的结果就是”Hello dxy”。

总结:这次在使用replace()方法的时候让我注意到以下几个问题:

1、在使用replace()方法的时候首先要确保不能在null或undefined类型的变量上调用。我们可以给它增加一个判断,如果变量有值的时候才调用方法。

2、执行replace()方法的时候的变量不仅是要有值,还必须是字符串类型的。

3、js不是自动赋值的,执行一个方法,要么是在方法里直接执行,要么是返回结果,返回结果的时候需要通过一个变量去接收。

4、如果第一个参数传的是一个正则表达式的话,是不能加引号的。

以上所述是小编给大家介绍的使用JS中的Replace()方法遇到的问题小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

使用JS中的Replace()方法遇到的问题小结

使用JS中的Replace()方法遇到的问题小结:今天在写pc客户端自动化打包脚本的时候遇到遇到了几个问题,虽然是小问题,但是也卡了一段时间,所以决定记录一下。 js的replace()方法是用于替换某些内容,它可以接收两个参数,第一个是一个被替换的正则表达式对象或者一个字符串,第二个可以是将要替换成的
推荐度:
标签: 使用 js 总结
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top