5 个回答

不知道是不是你想要的

const data = "['10.163.199.172.8083','10.163.199.174.8083']";
const regex = /^\[\s*'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,5})'\s*,\s*'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,5})'\s*\]$/;
regex.test(data)

干嘛非要全用正则,先用 JSON.parse() 解析出来,看能不能解析成功。成功的话看是不是数组,是数组的话,看里面每个元素是不是符合 IP:Port 的正则。IP:PORT 的正则就好找了嘛。

ip-v4[:端口]

/^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$/

可以通过 正则大全 找到很多常用的正则。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏