将一组词汇表术语拆分为:
lines = text.split(/[\r\n]+/);
然后我遍历数组并解析每个术语以在输出期间正确格式化它们。然而,对空字符串的简单检查已经变得比我想象的更令人头痛。控制台记录为我提供了这个:
...
"Pushing" "dyspnea: Labored or difficult respiration." //correct
"Pushing" ""
...
为了找到这些空字符串我尝试过的事情:
line === ""
line.length == 0
if(line)
isNaN(line.charCodeAt(0))
typeof line == "undefined"
以上列表的各种组合。根据同事的推荐,我检查了输入文本的行结尾,但这一切看起来都很正常。
我确定我只是做了一些真的愚蠢的事情,但是这个解决方案已经躲过了太长时间。任何帮助/建议将不胜感激!
修改 感谢大家的建议。唉,问题仍然存在......
另外,我忘记提及了,但是我在分割后尝试了修剪和替换每行中的空格,但没有提出任何内容。
根据要求,这是更相关的代码。
var text = "";
var end = /\x2E\s\x5B/gm; // ". ["
var lines = [];
var terms = [];
text = document.getElementById("terms").value;
lines = text.split(/[\r\n]+/);
parseText();
function parseText() {
var i = 0;
while(i < lines.length) {
var line = lines[i];
endIndex = lines[i].search(end);
if(line != "" || line != " " || line.length != 0 ) {
parseTerm(lines[i].substring(0, endIndex+1));
}
i++;
}
答案 0 :(得分:2)
如前所述,问题可能是空格,您可以使用trim函数来缩短代码:
if (line.trim() == "") {
alert("Blank");
}
答案 1 :(得分:0)
也许字符串不是“”,而是“”?
所以不仅要检查零长度,还要检查“空格”
if(st1 == "" || st1 == " " || st1.length == 0 ){
console.log("find empty")
}
答案 2 :(得分:0)
事实证明,在我的输入中有一行有两个空格。我不知道为什么这会导致问题,考虑到拆分是专门针对上述模式的,但是替换太多空格的实例解决了这个问题。新行:
text.replace(/\s\s+/g, " ").split(/[\r\n]+/);