解析字符串查找字符

时间:2014-08-29 10:18:09

标签: javascript jquery substring

我试图提取这个字符串的数字:" ax(341); ay(20); az(3131);"

我认为我能做到这一点:

var ax = data.split('(');
var ax2 = ax[1].split(')');

ax2 [0]有" 341"

现在如果我可以重复这个但是从下一个indexOf开始取第二个数字。

我认为这是一种不好的做法,所以我问你如果你有更好的主意。

提前致谢

3 个答案:

答案 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"]

现在您可以正常访问数组中的数字。

DEMO

答案 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"]

http://regex101.com/r/zE9pS7/1