我正在使用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);
}
最令人困惑的部分是,当我从单词[0]发出警告时,它会显示带有点“。”的单词。
答案 0 :(得分: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";
}
答案 1 :(得分:0)
不应使用charAt(),而应将字符串用作字符表。
var firstChar = words[0].charAt(0);
可以替换为
var firstChar = words[0][0];