首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么替换函数不适用于字符串?

为什么替换函数不适用于字符串?
EN

Stack Overflow用户
提问于 2014-12-28 18:23:03
回答 1查看 1.1K关注 0票数 0

我有一个文件名,我分割成几个部分,但是由于某种原因,有一个字符串不能替换一个字符。

代码语言:javascript
运行
复制
var filename = "first part - 5-10 - third part.txt"
var filenameparts = filename.split(" - ");
console.log(filenameparts);
console.log(filenameparts[0].substring(filenameparts[0].indexOf(' '))); //this prints fine

Array[3]
  0: "first part"
  1: "5-10"
  2: "third part.txt"
  length: 3
part

当我添加这一行时,控制台和html中不会出现任何打印:

代码语言:javascript
运行
复制
console.log(filenameparts[1].replace("-","/")); 

HTML:

代码语言:javascript
运行
复制
Uncaught node.js Error 

TypeError: Cannot read property 'replace' of undefined
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-28 18:33:38

问题中的代码不会导致您所描述的错误(见下文),因此您需要在其他地方查找。请注意,如果filename 中没有至少一个" - " (在您的问题中是这样的,但您可能实际上是从某个地方获得这个名称,而不是使用文本字符串),那么您将得到一个数组,其中只有一个来自split的条目,因此您确实需要在filenameparts[1]行上设置一个守卫,例如:

代码语言:javascript
运行
复制
if (filenameparts.length > 1) {
    console.log(filenameparts[1].replace("-","/")); 
}

证明您在问题中的代码有效:

代码语言:javascript
运行
复制
var filename = "first part - 5-10 - third part.txt"
var filenameparts = filename.split(" - ");
snippet.log(filenameparts);
snippet.log(filenameparts[0].substring(filenameparts[0].indexOf(' '))); //this prints fine
snippet.log(filenameparts[1].replace("-","/")); 
代码语言:javascript
运行
复制
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

这是一个Community,因为它实际上是一个带有堆栈片段的评论。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27679287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档