如何在 JavaScript 中获取格式化字符串的值

how to get the value of an formatted string in javascript

本文关键字:格式化 字符串 获取 JavaScript      更新时间:2023-09-26

Javascript code

$("#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的 [串行] 的值。请开导我..谢谢

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

$card.Serial

或(括号表示法)

$card['Serial']

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

$card[i].Serial

$card[i]['Serial']

请阅读有关物业访问器的更多信息。

可以将对象视为关联数组(又名映射、字典、哈希、查找表)。此数组中的键是对象属性的名称。在谈到对象的属性时,通常会区分属性和方法。但是,属性/方法的区别只不过是一个约定。方法只是一个可以调用的属性,例如,如果它具有对函数实例的引用作为其值。

我建议编写一个简单的解析器来将其转换为以下对象:

{
 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] : '');