2017-11-29 19 views
-1

日付にキャストする必要がある文字列があります。 IEでは、文字列に文字列がありません。キャストすると無効な日付と表示されます。JavaScriptの文字列から空白文字を削除する

私は

var dateString = $('#DueDate').val() 
for(var i = 0; i < dateString.length; i++){console.log(dateString[i]);} 

を実行すると、これが出力されます:

// empty line that I can't format in Stack overflow correctly 
0 
1 

/

0 
1 

/

2 
0 
1 
2 

そしてdateString.length出力15。私はコピーして、これらの特殊文字は、IEコンソールにコントロール自体からあるべき場所貼り付ける場合dateString.valueOf()出力"‎01‎/‎01‎/‎2012"

また、開発ツール・ウィンドウがフリーズするので、これらの文字は、コントロールからのIバックスペース場合は....スペースにはできません適切な場所では、それはうまく動作します(おそらく、特殊文字がもう存在しないためです)。このキャラクターを検索して削除するにはどうすればよいですか?

+0

このhttps://stackoverflow.com/questions/1144783/how-to-replace-all-occurrences-of-a-string-in-javascript – Crappy

+0

@Crappy OPは何を知っていない参照文字は実際には、特に 'replace'を使ってそれをターゲットにしているのが最良の選択肢ではないかもしれません。 – Santi

+0

@サンティのおかげで:それはhttps://en.wikipedia.org/wiki/Left-to-right_markでした – Conner

答えて

1

この文字を検索して削除するにはどうすればよいですか?

正規表現を利用できます。あなたはどのような「奇妙な」の文字についてのいくつかのより多くの情報が欲しい場合は

var dateString = '12___/15___/20_17_xxx';   // Poorly-formatted date string 
 
dateString = dateString.replace(/[^0-9/]/g, ""); // 12/15/2017 
 

 
var date = new Date(dateString);     // Cast as date 
 
console.log(date);        // 2017-12-15T05:00:00.000Z


:以下は数値または/ではないものを削除します

文字列の内容をループして各文字コードをコンソールに記録することができます:

var str = "Hello!"; 
 
for (var i = 0, len = str.length; i < len; i++) { 
 
    console.log(str.charAt(i) + ": " + str.charCodeAt(i)); 
 
}

関連する問題