js正则请教 最后面数字的逗号不要,不会弄,

目的:验证 句子中的 sum(1,2,3) sum(a1,b3,e1)格式 是否正确
要求: sum(1,2,3,) 这种不符合要求, sum(1,2) 这种符合
问题: 最后面数字的逗号不要,不会弄

......sum(1,2,3,)......


const regex = /sum\((([-]?\d+(\.\d+)?,)|([a-z]{1,2}\d{1,2},))+\)/

    var re = /sum\(([a-z]{1,2})?\d+(\.\d+)?(\s*,([a-z]{1,2})?\d+(\.\d+)?)*\)/;
    ['sum(a1,b3,e1)', 'sum(1,2,3)', 'sum(1,2,3,)'].forEach(i=>console.log(re.test(i)))

解决思路:将字符串sum(1,2,3) 进行拆分,前面一部分是“字母/数据 + ,”,后面一部分是“字母/数字”。
可参考:
const regex = /^sum((\w,)*(\w))$/ // 以sum( 开头,中间匹配多次 \w 与逗号的组合,最后以 \w) 结尾。
regex.test('sum(1,2,3,)') // true
regex.test('sum(3)') // true
regex.test('sum(1,2,3,)') // false

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632