我使用===来比较字符串是个问题 我从文本文件中获取整个数据并逐行分割值('\ n') 喜欢java中的readLine() 并希望找到字符串“SECTION”但找不到。
当我把
if(contents[i] === "SECTION") {
alert("This is section");
}
没有警报!我确信文本文件有“SECTION”字样
但是
if (contents[i].match("SECTION))
是工作。
有什么建议吗?感谢
<小时/> javascript
function readFile (evt) {
var files = evt.target.files;
if (files) {
for (var i=0, f; f=files[i]; i++) {
var file = files[i];
var reader = new FileReader();
reader.onload = function() {
var contents = [];
contents = this.result.split("\n");
for (var i = 0; i < contents.length; i++) {
if(contents[i] === "SECTION") {
alert("This is section");
}
document.getElementById('textArea').innerHTML +=contents[i];
}
}
reader.readAsText(file);
}
}
}
答案 0 :(得分:1)
您的代码有点奇怪,但是:
var contents = [];
contents = this.result.split("\n");
不需要两个行,第二个赋值会覆盖第一个,所以:
var contents = this.result.split("\n");
for (var i = 0; i < contents.length; i++) {
if(contents[i] === "SECTION") {
此处不需要===
,但我认为它没有受到伤害。可能是比较文本周围有空格,因此您可以考虑删除空格或使用正则表达式,例如:
var re = /^\s*SECTION\s*$/;
将单词“SECTION”与之前和之后的任意数量的空格匹配。如果您只想要一个包含字符序列SECTION的行,那么:
var re = /\s*SECTION\s*/;
并忽略大小写:
var re = /\s*SECTION\s*/i;
不管。然后使用test
方法,如:
for ( ... ) {
if (re.test(contents[i])) {
/* found a section */