2

这是问题:

我去这个代码:

var str = {"Acc":10 , "adm_data":"Denied"};

当我做类似的事情时:

console.log(str.Acc.match(/[0-9]+/g)) // To Get the Integer Value from the "Acc" key

萤火虫尖叫:

TypeError:str.Acc.match 不是函数

console.log(str.Acc.match(/[0-9]+/g));

见图片:

在此处输入图像描述

我总是做类似的事情:

var str = "Hello _10";

console.log(str.match(/[0-9]+/g)) // This Works

为什么Object东西不工作?


请注意:

正如@Fabrício Matté.问题所提到的,我试图将一个integer值传递给.match不属于的方法integers解决方案是按照@kundan Karn 建议做。类似的东西: str.Acc.toString().match(/[0-9]+/g)// Converting it first to string then match。有效!

4

2 回答 2

4

match 函数适用于字符串。所以先把它转换成字符串

str.Acc.toString().match(/[0-9]+/g)
于 2013-10-31T08:13:53.127 回答
1

它工作得很好:http: //jsfiddle.net/nKHLy/

但为了摆脱错误,您可能想尝试:

var str = {"Acc":"Hello_10" , "adm_data":"Denied"};
console.log(String(str.Acc).match(/[0-9]+/g));

或者

var str = {"Acc":"Hello_10" , "adm_data":"Denied"};
console.log(str.Acc.toString().match(/[0-9]+/g));

要了解这两个选项之间的区别,请检查:String(value) vs value.toString() 之间有什么区别

于 2013-10-31T08:17:37.557 回答