大家好我正在处理一个项目,我发现自己需要从特定索引中的字符串中获取一个数字,例如:我有这个ID,我必须得到这两个数字(考虑到一个数字可以包含1个或多个数字,例如:1或12)
id = stock_stockbundle_facturefounisseur_ligneffm_1_ligneff_1_idarticle
你可以注意到id在两个不同的部分中包含数字1,所以我需要在这个字符串中包含两个数字! 我想过使用子字符串,但如果第一个数字包含多个数字,我可能会错过第二个数字
如果有人有想法, 非常感谢提前!!!
答案 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);
});
参考文献: