2012-02-22 10 views
0

JSFiddle:http://jsfiddle.net/QbyUR/どのように隠れたユニコード文字でドームから空白を排除しますか?

私は空白を削除しようとしている空のTDを持っています。

:それは私がUnicodeのデコーダへの私のTDの内容を貼り付けし、これを得たので、働いていなかった、

ee.replace(/\s+/, '') == "" // check to see if TD is empty. 

偽上記のリターンをしかし:

通常、私はこれを行うだろう

U+000D <control> character 
U+000A <control> character 
U+0009 <control> character 
U+0009 <control> character 
U+0009 <control> character 
U+0009 <control> character 
U+0020 SPACE character 

または

&#x000d;&#x000a;&#x0009;&#x0009;&#x0009;&#x0009;&#x0020; 

私は変換テキストはここにある:(2つのライン間で)

------- 


------- 

これは私が使用したものである:http://software.hixie.ch/utilities/cgi/unicode-decoder/utf8-decoder

私はそれが制御文字だ100%確信しています私を台無しにしている。そして、それらはすべてのブラウザで異なるようにバインドされています...

どうやってそれらを取り除くことができますか?十分である正規表現の置き換えですか?

+0

答えは本当に間違っていることを説明していますが、ここで問題になっている「制御文字」は改行、改行、タブ、スペースだけであり、すべてが '\ s'でマッチします。 – nnnnnn

答えて

1

ここでの本当の問題は、jQueryのオブジェクトではなく、DOM要素のプロパティされていない、あなたがinnerTextを使用していることです。単に代わりにjQueryの機能.text()を使用します。

var e = $(".td"); 
var result = e.text().replace(/\s+/, '') == ""; // check to see if TD is empty 

alert(result);​ 

、すべてが正常に動作します。現時点では、文字列は実際には"undefined"です。これは、存在しないプロパティに空の文字列を追加したためです。

+0

@TheLindyHop:いいえ、私を信じて、それは正しいです。実際に試しましたか? – Ryan

+0

まだ明日は起こっているコンピュータで、すべてがまったく同じであることを確認します。私はあなたの助けに感謝します! = D defを+1し、これが機能するかどうかを確認します。 – NullVoxPopuli

0

あなたがしようとしているのは正しく動作しますが、あなたはJavascriptを間違って書いています。要素を選択するためにjQueryを使用しているので、要素のinnerTextにアクセスするための最初のインデックスを取得する必要があります。

http://jsfiddle.net/QbyUR/5/

関連する問題