我试图提取这个字符串的数字:" ax(341); ay(20); az(3131);"
我认为我能做到这一点:
var ax = data.split('(');
var ax2 = ax[1].split(')');
ax2 [0]有" 341"
现在如果我可以重复这个但是从下一个indexOf开始取第二个数字。
我认为这是一种不好的做法,所以我问你如果你有更好的主意。
提前致谢
答案 0 :(得分:4)
使用正则表达式:
var str = "ax(-341);ay(20);az(3131);"
var regex = /(-?\d+)/g
var match = str.match(regex);
console.log(match); // ["-341", "20", "3131"]
现在您可以正常访问数组中的数字。
答案 1 :(得分:1)
您可以使用正则表达式从中提取所有数字。
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
包含原始字符串中的所有整数。
答案 2 :(得分:0)
您可以使用正则表达式,例如:
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"]