我有一个文件名,我分割成几个部分,但是由于某种原因,有一个字符串不能替换一个字符。
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中不会出现任何打印:
console.log(filenameparts[1].replace("-","/"));
HTML:
Uncaught node.js Error
TypeError: Cannot read property 'replace' of undefined
发布于 2014-12-28 18:33:38
问题中的代码不会导致您所描述的错误(见下文),因此您需要在其他地方查找。请注意,如果filename
中没有至少一个" - "
(在您的问题中是这样的,但您可能实际上是从某个地方获得这个名称,而不是使用文本字符串),那么您将得到一个数组,其中只有一个来自split
的条目,因此您确实需要在filenameparts[1]
行上设置一个守卫,例如:
if (filenameparts.length > 1) {
console.log(filenameparts[1].replace("-","/"));
}
证明您在问题中的代码有效:
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("-","/"));
<!-- 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,因为它实际上是一个带有堆栈片段的评论。
https://stackoverflow.com/questions/27679287
复制相似问题