2009-08-25 97 views
1

此代碼隨機時失敗輸入來自具體來源,它的工作原理通常是確定:str.split()隨機失敗?

var str = input; 
var lines = str.split("¤"); 
var map = {}; 
for(var i = 0; i < lines.length; i++) { var pieces = lines[i].split("="); 
map[pieces[0]] = pieces[1];} 

例如該輸入數據不會產生MAP可言,只有一個映射條目:

"[core]¤student_id=teach54yuy63v¤student_name=Demo, teacher¤credit=c¤lesson_location=¤lesson_status=n,a¤path=¤score=¤time=00:00:00¤[Core_Lesson]¤tmreal_status=n,a¤tmreal_score=¤¤¤[Core_Vendor]¤¤[Objectives_Status]¤¤" 

該數據作品:

[芯]¤student_id=169yyuy63v¤student_name=, Si¤credit=c¤lesson_location=1¤lesson_status= N,a¤path=¤score=¤tim e = 00:00:00¤[Core_Lesson]¤real_status=i¤real_score=¤talhits= int:

+0

的中charCode可能是一個字符編碼的問題。什麼編碼是'str'和你的JavaScript源文件? – 2009-08-25 11:25:14

+0

首先,您可以嘗試使用'String.fromCharCode(yourseparator)',而不是將該字符粘貼到html中,然後查看是否有效。 – Alterlife 2009-08-25 11:26:13

+0

好的,什麼是字符代碼爲Ã – Tom 2009-08-25 11:28:34

回答

1

它與編碼有關。也許一些資源使用ASCII,一些UTF。轉換,或確保所有資源具有相同的編碼。

1

當您嘗試訪問第二項從「=」上分割「[core]」時出現錯誤。

您需要在「=」分割後確認是否有密鑰和值。

var str = input; 
var lines = str.split("¤"); 
var map = {}; 
for (var i = 0; i < lines.length; i++) { 
    var pieces = lines[i].split("="); 
    if (pieces.length == 2) { 
     map[pieces[0]] = pieces[1]; 
    } 
} 
1

嘗試使用\ XA4

這是 '¤'