2016-02-19 45 views
0

Javascript代码如何获得格式化字符串的值在JavaScript

$("#card").html($card); 

返回

Array 
(
    [state] => 6 
    [SCARD_PRESENT] => 1 
    [SCARD_SWALLOWED] => 1 
    [SCARD_POWERED] => 1 
    [SCARD_NEGOTIABLE] => 1 
    [SCARD_SPECIFIC] => 1 
    [SCARD_PROTOCOL_T1] => 1 
    [PROTOCOL] => T=1 
    [ATR] => 3B8F8001804F0CA000000306030001000000006A 
    [Serial] => EE476BB79000 
) 

我想返回的[串行]这是EE476BB79000值。 请赐教..谢谢

+2

这不是一个 'JavaScript的' 阵列 – RomanPerekhrest

+0

你说的'returned'是什么意思?你的意思是显示? – CompanyDroneFromSector7G

+0

感谢所有回复的人。我的意思是它显示。 – Kram143

回答

0

假设$card是一个JavaScript对象,那么这应该工作(点表示)

$card.Serial 

或(括号标记)

$card['Serial'] 

如果$card是一个数组,对于项目访问我们需要一个索引i,对于属性,属性:

$card[i].Serial 

$card[i]['Serial'] 

请阅读更多关于property accessors

可以将对象视为关联数组(a.k.a. map,dictionary,hash,lookup table)。此数组中的键是对象属性的名称。当谈到对象的属性以区分属性和方法时,这是很典型的。然而,财产/方法的区别只不过是一种惯例。方法只是一个可以调用的属性,例如,如果它具有对Function实例的引用作为其值。

+0

如果它是一个数组中的对象,它将是'$ card [0] .Serial',但是很难从问题中知道。 – Andy

+0

@安迪,没错。但我们不知道。 –

+0

谢谢你们。顺便说一句,我用智能卡读卡器读取智能卡的内容,并显示该值。对不起我在这里新 – Kram143

0

我建议写一个简单的解析器将其转换为一个对象,如:

{ 
state: '6', 
SCARD_PRESENT: '1', 
... 
Serial: 'EE476BB79000' 
}; 

然后,你可以阅读串行财产。但要具体获取序列值,可以在字符串中找到它的位置,然后在该行的末尾抓取非空白字符。

以下是评论,询问是否需要进一步帮助。

var data = 'Array\n' + 
 
'(\n' + 
 
' [state] => 6\n' + 
 
' [SCARD_PRESENT] => 1\n' + 
 
' [SCARD_SWALLOWED] => 1\n' + 
 
' [SCARD_POWERED] => 1\n' + 
 
' [SCARD_NEGOTIABLE] => 1\n' + 
 
' [SCARD_SPECIFIC] => 1\n' + 
 
' [SCARD_PROTOCOL_T1] => 1\n' + 
 
' [PROTOCOL] => T=1\n' + 
 
' [ATR] => 3B8F8001804F0CA000000306030001000000006A\n' + 
 
' [Serial] => EE476BB79000\n' + 
 
')' 
 

 
// Find Serial 
 
var idx = data.indexOf('Serial'); 
 

 
// Get the value at the end of that line 
 
var serial = data.substr(idx).match(/\w+\s*$/m); 
 

 
// match will return an array of matches, or null if none 
 
// were found so test it first. 
 
document.write(serial? serial[0] : '');