javascript - 从字符串 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
有一个更好的方法吗?
解决方案
您可以使用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);
推荐阅读
- intellij-idea - 获取依赖项时 Dart SDK 版本错误
- c# - 如何在访问器声明的末尾添加分号
- javascript - Bootstrap 4 列大小在 Google Chrome 中不起作用
- perl - 查找具有特定扩展名的文件名
- sql - 当只返回空值时,如何选择使我的所有变量的默认值都为“0”?
- methods - INRIA SPOON 调用构造函数的内部方法
- apache-kafka - Kafka - 冗余应用程序的拓扑更改
- javascript - 区分 docusaurus 中的页面/内容
- python - 续行不起作用?
- c# - C# - 如何在 *.nuspec 文件中使用自定义程序集属性?