Javascript 检查js/node.js中的行是否仅包含空格和\n

Javascript 检查js/node.js中的行是否仅包含空格和\n,javascript,node.js,Javascript,Node.js,我目前正在尝试解析一个smil(xml)文件 我遇到的最大问题是,行中是否只包含空格和行尾,而不包含任何其他内容 我一直在努力: if(line.trim()==='\n') if(line.trim().length<='\n'.length) n='\n'; if(line.trim()===n) if(line.trim()='\n') 如果(line.trim().length阅读一些关于正则表达式的教程,然后试试这个 if (/^\s*$/.test(line)) con

我目前正在尝试解析一个smil(xml)文件

我遇到的最大问题是,行中是否只包含空格和行尾,而不包含任何其他内容

我一直在努力:

if(line.trim()==='\n')
if(line.trim().length<='\n'.length)

n='\n';
if(line.trim()===n)
if(line.trim()='\n')

如果(line.trim().length阅读一些关于正则表达式的教程,然后试试这个

  if (/^\s*$/.test(line)) console.log('line is blank');
/^\s*$/
是一个正则表达式,表示

 ^ anchor begin of string
 \s whitespace character class (space, tab, newline)
 *  zero or more times
 $ end of string
。我认为它还将删除\n和\t。修剪后,应检查字符串的长度是否为零。 若长度不为零,则字符串必须包含除空格以外的字符

正如您提到的Node.js。如果trim不起作用,那么您可以通过执行以下代码来实现trim:

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^\s+|\s+$/g, '');
  };
}

我会尝试另一种方法,找到你想要的角色类型

var lineR = line.search(char(34)) //char(34) is carriage return
if(lineR != null)
//lineR is your actual position of lineReturn. Do a Substring(0,lineR) then.
    line = line.Substring(0,lineR)

或者,查看.lastIndexOf()。

答案是不要编写自己的XML解析器;从这里开始使用:(但如果您真的只想学习编写XML解析器,请查看用于解析文本的正则表达式).
\n
是空白。请参见:它们是用于JQuery的,我使用node.js,但没有找到任何node.js的xml解析器。我要补充的是,smil并不完全是xml,但具有类似的语法。@DrakaSAN,其中两个答案提到了非JQuery。另请参见:。不过,如果您具备以下条件,编写自己的xml解析器将是一次很好的学习经历在你的经验水平上坚持到底。@EdPlunkett:我完成了我的解析器,它并不完美,而且对文件的写入方式(字段顺序)要求非常严格,但它可以工作,避免我重写依赖于返回类型的代码的其他部分。如果您愿意,我可以在编辑中发布它。我会看看您的解决方案想法。这项工作,我会在可以的时候接受。regex似乎很有帮助,我会了解这一点。Trim确实可以工作(因为它是简单的javascript),并且您对line.Trim()有很好的理解.长度,它是0。