1

我正在用javascript做一个小项目。我正在使用 charAt 方法从 ace 编辑器获取一行中的第一个字符。这是我的代码:

function checkFirstChar (lineNo) {
  var words = lines[lineNo].split(" ");
  var firstChar = words[0].charAt(0);

  if (firstChar == "." || firstChar == "#") {
    return 0;
  }
  else return 1;
}

其中 lines 是一个数组或字符串,它是从 ace 编辑器中提取的。问题是,当第一个字符是“#”时,这可以正常工作。但是当第一个字符是'.'时,它不会把它当作一个点'.' 相反,它把它当作一个“”(空字符串)。有谁可以帮我离开这里吗 ?它出什么问题了 ?

编辑:这就是我采用数组的方式,行。

for(var i = 0, lines = new Array(numOfLines); i<numOfLines; i++ ){
        lines[i] = editor.session.getLine(i);
}

最令人困惑的部分是,当我从 words[0] 发出警报时,它会显示带有点“。”的单词。

4

2 回答 2

1

我试过代码。它对我来说非常好。请检查您的数组中插入的值。我想它应该可以正常工作。我实现了以下代码:

function myFunc() {
  var words = ".sdf dfsf #sdsd df";
  var firstChar = words[0].charAt(0);
  document.getElementById("demo").innerHTML = "";
  if (firstChar == "." || firstChar == "#")
    document.getElementById("demo").innerHTML = "bingo";
}
于 2014-12-16T17:13:23.263 回答
0

您应该将字符串用作字符表,而不是使用 charAt()。

 var firstChar = words[0].charAt(0);

可以替换为

 var firstChar = words[0][0];
于 2014-12-16T16:54:45.440 回答