如何从特定索引中获取数字?

时间:2014-11-12 15:19:26

标签: javascript jquery

大家好我正在处理一个项目,我发现自己需要从特定索引中的字符串中获取一个数字,例如:我有这个ID,我必须得到这两个数字(考虑到一个数字可以包含1个或多个数字,例如:1或12)

id = stock_stockbundle_facturefounisseur_ligneffm_1_ligneff_1_idarticle

你可以注意到id在两个不同的部分中包含数字1,所以我需要在这个字符串中包含两个数字! 我想过使用子字符串,但如果第一个数字包含多个数字,我可能会错过第二个数字

如果有人有想法, 非常感谢提前!!!

3 个答案:

答案 0 :(得分:2)

您可以使用正则表达式:

var id='stock_stockbundle_facturefounisseur_ligneffm_10_ligneff_2_idarticle';
var pattern=/\d+/g;
var res = id.match(pattern);
alert(res[0]); //will be 10
alert(res[1]); //will be 2

这两个数字都存储在数组res

如果您不关心2个数字之间的分割(所以您只需要'102'):

var id='stock_stockbundle_facturefounisseur_ligneffm_10_ligneff_2_idarticle';
var res = id.replace(/\D+/g,'');
alert(res); //will be 102

答案 1 :(得分:0)

var id = "stock_stockbundle_facturefounisseur_ligneffm_1_ligne4ff_1_idarticle";
var idArrayCheck = id.split("");
var idNumbers = [];

inArray(idArrayCheck);

function inArray(array) {
    for (var i = 0; i < array.length; i++) {
        if (array[i] == 1 || array[i] == 2 || array[i] == 3 || array[i] == 4 || array[i] == 5 || array[i] == 6 || array[i] == 7 || array[i] == 8 || array[i] == 9 || array[i] == 0) {
                idNumbers.push(array[i]);
            }
        }
    }

idNumbers = idNumbers.join("");

alert(idNumbers);

idNumbers将是一个等于“141”的字符串

答案 2 :(得分:0)

一种可能的方法:

function retrieveNumberMatches(haystack) {
  return haystack.match(/\d+/g);
}

var numbers = retrieveNumberMatches("stock_stockbundle_facturefounisseur_ligneffm_1_ligneff_1_idarticle");


numbers.forEach(function(n, i) {
  console.log('Number ' + i + ': ' + n);
});

参考文献: