Javascript 除开头外,获取逗号后跟数字的正则表达式

Javascript 除开头外,获取逗号后跟数字的正则表达式,javascript,regex,Javascript,Regex,我有一个带有数字的字符串,后跟一个冒号符号和一些文本,用逗号分隔,如下所示: 2534:MULTIPLE TEST 10000 - CLONE,2533:RTD EMAIL PT01-08 SEND1 PW03 我需要的是一个字符串,它用逗号分隔数字。像这样: 2534,2533 我试过这个,但它没有得到第一个数字,因为它不是以逗号开头的: ,[^:]* 我该怎么做? const regex=/(\d)+(?=\:)/gm; const str=`2534:MULTIPLE TEST 10

我有一个带有数字的字符串,后跟一个冒号符号和一些文本,用逗号分隔,如下所示:

2534:MULTIPLE TEST 10000 - CLONE,2533:RTD EMAIL PT01-08 SEND1 PW03
我需要的是一个字符串,它用逗号分隔数字。像这样:

2534,2533
我试过这个,但它没有得到第一个数字,因为它不是以逗号开头的:

,[^:]*
我该怎么做?

const regex=/(\d)+(?=\:)/gm;
const str=`2534:MULTIPLE TEST 10000-CLONE,2533:RTD EMAIL PT01-08 SEND1 PW03`;
让strings=str.match(regex)

console.log(strings.join())
更好地定义您的格式:您有逗号分隔的字符串(
2534:MULTIPLE TEST 10000-CLONE
2533:RTD EMAIL PT01-08 SEND1 PW03
),因此首先将它们分开:

const str = `2534:MULTIPLE TEST 10000 - CLONE,2533:RTD EMAIL PT01-08 SEND1 PW03`;
const parts = str.split(",");
现在,每个部分都是一个
number:string
对。拆分它们,只保留第一部分(数字):


完成了。不需要正则表达式。

s.replace(/:[^,]*/g',)
?请参见为什么
常量
?它不会是一个常数sure@FlashThunder你不会重新分配的,是吗?然后它是一个
常量
。我想他不想只用一行就这么做,所以它可能会在某个循环中。@dalamar字符串中可能没有数字。请让您在加入阵列之前添加以检查是否存在
字符串
。请在启动正则表达式之前进行检查。如果字符串为空,我什么也不做,否则,字符串总是有数字。请确保字符串始终有数字,但是如果您得到的字符串没有数字,或者字符串不满足正则表达式模式,则正则表达式将返回null,如果您尝试在null上写入.join(),则应用程序将崩溃!!!
const numbers = parts.map(part=>part.split(":")[0]);