如何使用Regex与Node.js匹配除连续13位数字外的所有内容
解决方案:Node.js + 正则移除连续13位数字
当然有可行的思路啦,其实核心思路反过来想更简单——精准定位你要移除的连续13位数字,然后把它们替换为空,这样剩下的就是你要的内容了。下面是具体的实现方案:
基础实现代码
直接使用JavaScript的String.replace()方法配合正则表达式,就能快速完成需求:
const originalUrl = 'https://www.mywebsite.com/123_05547898_8101060027367_00.jpeg'; // 匹配连续13位数字并替换为空 const modifiedUrl = originalUrl.replace(/\d{13}/, ''); console.log(modifiedUrl); // 输出结果:https://www.mywebsite.com/123_05547898__00.jpeg
正则表达式说明
\d:匹配任意一个数字字符(等价于[0-9]){13}:指定前面的匹配项(这里是数字)必须连续出现13次- 整个
/\d{13}/就会精准定位字符串中第一处连续13位数字的片段
进阶:处理多个连续13位数字的场景
如果你的字符串中可能存在多处连续13位数字,可以给正则加上全局匹配标志g,这样会替换所有符合条件的片段:
const originalStr = 'abc1234567890123def9876543210987ghi'; const modifiedStr = originalStr.replace(/\d{13}/g, ''); console.log(modifiedStr); // 输出结果:abcdefghi
可选:避免误匹配长数字中的13位片段
如果需要确保匹配的是独立的13位数字序列(比如不想把14位数字里的前13位误删掉),可以使用单词边界\b来限定范围:
const originalStr = 'abc12345678901234def1234567890123ghi'; // \b 会匹配数字与非数字字符的边界 const modifiedStr = originalStr.replace(/\b\d{13}\b/g, ''); console.log(modifiedStr); // 输出结果:abc12345678901234defghi
内容的提问来源于stack exchange,提问作者Henri
相关产品推荐
相关产品推荐

