使用JavaScript从字母数字字符串提取数字返回升序排序数值数组
JavaScript 实现字符串提取数字并升序排序
实现逻辑
- 全局匹配字符串内所有整数、小数格式的片段,避免把孤立点号识别为数字组成部分
- 将匹配到的数字字符串统一转为Number数值类型
- 修正JS默认
sort()的字典序排序问题,传入比较函数实现数值升序排列
函数代码
function extractNumbersAndSort(str) { // 匹配规则:1位及以上数字,可选匹配「小数点+1位及以上数字」的小数部分 const matchedNums = str.match(/\d+(\.\d+)?/g) ?? []; return matchedNums .map(item => Number(item)) .sort((prev, next) => prev - next); }
测试验证
用样例输入测试:
const input = "AC*WV12n/:e123we2.45oinfwoi6n#a98nfwb+owi"; console.log(extractNumbersAndSort(input)); // 输出结果: [2.45, 6, 12, 98, 123],完全符合预期
补充说明:如果字符串中没有任何数字,函数会直接返回空数组,不会抛出运行错误;如果需要支持负数、科学计数法等特殊数字格式,只需要调整对应正则匹配规则即可。
内容的提问来源于stack exchange,提问作者Ahmad
相关产品推荐
相关产品推荐

