Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中获取格式化字符串的值_Javascript - Fatal编程技术网

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

如何在javascript中获取格式化字符串的值,javascript,Javascript,Javascript代码 它回来了 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

Javascript代码

它回来了

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
)
我想返回[Serial]的值,即EE476BB79000。
请开导我。。谢谢

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

或(括号符号)

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

$card[i].Serial

请阅读更多关于

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


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

{
 state: '6',
 SCARD_PRESENT: '1',
 ...
 Serial: 'EE476BB79000'
};
然后您就可以读取串行属性了。但是为了具体地获取序列值,您可以找到它在字符串中的位置,然后获取该行末尾的非空白字符

下面是评论,询问您是否需要进一步帮助

var数据='Array\n'+
“(\n”+
“[状态]=>6\n”+
“[SCARD_PRESENT]=>1\n”+
“[SCARD_]=>1\n”+
“[SCARD_POWERED]=>1\n”+
“[SCARD_]=>1\n”+
“[SCARD_SPECIFIC]=>1\n”+
“[SCARD_协议_T1]=>1\n”+
“[协议]=>T=1\n”+
“[ATR]=>3B8F8001804F0CA000000306030001000000006A\n”+
“[串行]=>EE476BB79000\n”+
')'
//查找序列号
var idx=data.indexOf('Serial');
//获取该行末尾的值
var serial=data.substr(idx).match(/\w+\s*$/m);
//match将返回一个匹配数组,如果没有,则返回null
//我们被发现了,所以先测试一下。

文件写入(序列号?序列号[0]:“”)
这不是“javascript”数组返回的
是什么意思?你的意思是显示?感谢所有回复的人。我是说它被显示了。看起来数据是以格式化字符串的形式返回的,所以您需要编写一个非常简单的解析器来将其转换为有用的内容。您甚至可以使用正则表达式提取该值。@RobG如何仅因为[Serial]值是字符串就显示它?如果它是数组中的对象,则它将是
$card[0]。Serial
,但很难从问题中分辨出来。谢谢大家。顺便说一句,我使用智能卡读卡器,它读取智能卡的内容,并显示该值。对不起,我是新来的,我已经做了
$(“#card”).html($card[0])
但它返回单词数组中的字母a。请测试
$card
是否是数组,odr的
类型是什么。很抱歉,它是字符串而不是数组。
$card['Serial']
$card[i].Serial
$card[i]['Serial']
{
 state: '6',
 SCARD_PRESENT: '1',
 ...
 Serial: 'EE476BB79000'
};