【发布时间】:2014-12-16 16:40:19
【问题描述】:
我正在使用 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] 发出警报时,它会显示带有点“.”的单词
【问题讨论】:
-
显示
lines和您对函数checkFirstChar的调用。如果代码原样,它应该可以正常工作 -
words以空格开头? -
@AmitJoki 我添加了一些附加信息。感谢您的帮助。
-
@ThisaruGuruge 尝试在 jsfiddle 中复制您的问题。据我所知,您的代码没有任何问题
-
听起来你在点之前有一些不可见的零宽度字符。尝试登录
words[0].charCodeAt(0)
标签: javascript string charat