如何为正则提取的数字数组添加逗号分隔?JavaScript新手求助
正则提取数字并按要求输出的解决方案
问题分析
你的原代码通过replace(/\D/g, '')移除所有非数字字符,得到的是连续数字字符串,但没满足提取为数组、用test()检查无数字情况的要求,也没实现数字间的逗号分隔。
修正代码
var sentence = "5om3 wr173 w0rd5 u51n9 numb3r5"; function printDigits() { const digitRegex = /\d/g; // 用test()方法检查句子中是否存在数字 if (!digitRegex.test(sentence)) { console.log("No digits!"); return; } // 提取所有单个数字到数组 const digits = sentence.match(digitRegex); // 打印数组形式(元素默认以逗号分隔) console.log(digits); // 若需要纯逗号分隔的字符串,可替换为: // console.log(digits.join(',')); } printDigits();
代码说明
- 正则表达式:
/\d/g用于全局匹配所有单个数字,\d匹配0-9的数字,g确保匹配所有符合条件的内容 - test()检查:
digitRegex.test(sentence)返回布尔值,判断是否存在数字,不存在则直接输出提示并终止函数 - 提取数组:
sentence.match(digitRegex)会返回包含所有匹配数字的数组,每个元素是单个数字字符串 - 输出格式:直接打印数组时,控制台会以
[元素1, 元素2, ...]的形式展示;如果需要纯逗号分隔的字符串,使用join(',')方法将数组元素拼接成字符串
测试结果
- 原句子执行后输出数组:
[ '5', '3', '1', '7', '3', '0', '5', '5', '1', '9', '3', '5' ] - 若句子无数字(如
sentence = "Hello world"),执行后输出:No digits!
内容的提问来源于stack exchange,提问作者H. Ach
相关产品推荐
相关产品推荐

