首页 > 解决方案 > 从字符串 JS / Lodash / TypeScript 中获取数字

问题描述

我有一个以字符串形式出现的链接,例如:

 let data = [
         '/api/customer’,
         '/api/customer/123’,
         '/api/customer/123/details’
    ];

如果有,我需要提取数字 ID。我发现的唯一方法是通过 _.isNaN():

const myStrArray = type.split('/');
const numericsArray = _.filter(myStrArray, urlPart => !_.isNaN(parseInt(urlPart, 10)));
const id = numericsArray[0]; // undefined/123

有一个更好的方法吗?

标签: javascripttypescriptlodash

解决方案


您可以使用Array.flatMap()(或 lodash _.flatMap())迭代数组,并使用String.match()RegExp 来获取数字序列。

注意:此 RegExp 假定这些是字符串中唯一的数字。如果有其他数字的可能性,您可能需要对其进行微调。

 let data = [
   '/api/customer',
   '/api/customer/123',
   '/api/customer/123/details'
];

const result = data.flatMap(str => str.match(/\d+/));

console.log(result);


推荐阅读