4

現在、smil (xml) ファイルを解析しようとしています。

私が抱えている最大の問題は、行に空白と行末以外が含まれていない場合です。

私は試しています:

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

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

それらのどれも機能しませんでした。文字列に「実際の」文字がないかどうかを確認する方法はありますか? または、文字列に \t、\n、空白のみが含まれている場合は?

4

3 に答える 3

14

正規表現に関するいくつかのチュートリアルを読んでから、これを試してください

  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
于 2013-09-10T16:37:52.663 に答える
2

Trim は、先頭と末尾の をすべて削除しますWHITESPACES。\n と \t も削除されると思います。トリミング後に文字列の長さがゼロであることを確認する必要があります。長さがゼロでない場合、文字列には空白以外の文字が含まれている必要があります。

あなたがNode.jsについて述べたように。トリムが機能しない場合は、次のコードを実行するだけでトリムを実装できます。

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^\s+|\s+$/g, '');
  };
}
于 2013-09-10T16:40:51.947 に答える
0

別のアプローチを試してみます。あなたが求めているキャラクターのタイプを見つけてください。

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() を調べます。http://www.w3schools.com/jsref/jsref_lastindexof.asp

于 2013-09-10T16:43:42.380 に答える