js正则如何校验多个网址并以逗号分隔

比如
http://www.segmentfault.com,http://segmentfault.com // true
http://www.segmentfault.com/ // true
https://segmentfault.com/ //true

http://segmentfault //false
http://www.segmentfault.com,http://segment //false

一个直接一次验证的正则,我弄不来,我的思路是将字符串以逗号为分隔符转为数组,数组挨个正则验证


const str = 'http://www.segmentfault.com,http://segmentfault.com'
            const reg = /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i
            const arr = str.split(',')
            let flag = true // 默认可验证通过
            for (let i = 0; i < arr.length; i++) {
                if (!reg.test(arr[i])) { // 出现验证不通过情况
                    flag = false // 改为验证不通过
                    break // 终止循环
                }
            }
            if (!flag) {
                console.log('验证失败')
            } else {
                console.log('验证成功')
            }