我想提取这个字符串的数字:“ax(341); ay(20); az(3131);”解析字符串查找字符
我认为我可以做到这一点如何:
var ax = data.split('(');
var ax2 = ax[1].split(')');
AX2 [0]有“341”
现在,如果我可以重复这一点,但在接下来的indexOf开始服用第二个数字。
我认为这是一个不好的做法,所以我问你如果你有一个更好的主意。
在此先感谢
我想提取这个字符串的数字:“ax(341); ay(20); az(3131);”解析字符串查找字符
我认为我可以做到这一点如何:
var ax = data.split('(');
var ax2 = ax[1].split(')');
AX2 [0]有“341”
现在,如果我可以重复这一点,但在接下来的indexOf开始服用第二个数字。
我认为这是一个不好的做法,所以我问你如果你有一个更好的主意。
在此先感谢
您可以使用正则表达式从此提取所有数字。
var data = "ax(341);ay(20);az(3131);";
var ax = data.match(/\d+/g);
这里ax
现在["341", "20", "3131"]
注意ax
包含数字的字符串。将它们转换为数字,使用以下
ax2 = ax.map(function(x){ return parseInt(x); })
编辑:您也可以使用Number
的功能在上面的行映射。它会看起来像,
ax2 = ax.map(Number)
这ax2
后包含原始字符串的所有整数。
你可以只说'AX2 = ax.map(parseInt函数)' – Mritunjay 2014-08-29 10:26:18
不可以。它给出了一些奇怪的结果。试用。对我来说,它给了[341,NaN,NaN]。看到[这](http://stackoverflow.com/questions/262427/javascript-arraymap-and-parseint) – nisargjhaveri 2014-08-29 10:27:25
这将给出一个错误,因为'parseInt'使用第二个参数作为基数。最好使用'Number':'ax2 = ax.map(Number)' – Andy 2014-08-29 10:27:26
你可以使用正则表达式,如:
var string = 'ax(341);ay(20);az(3131);';
var pattern = /([0-9]{1,})/g;
var result = string.match(pattern);
console.log(result);
// ["341", "20", "3131"]
使用正则表达式在这里看到http://stackoverflow.com/questions/13807207/regex-find-a-number-between-parentheses – Mritunjay 2014-08-29 10:23:49