首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

正則表達式驗證 IP:Port 格式(僅格式校驗)

     編輯:程式設計綜合問答

需求:驗證字符串是否符合 IP:Port 格式(如 192.168.1.118:8083),不需校驗 IP 數值合法性(如 999.999.999.999:99999 也視為格式通過)。

正則表達式

^\d{1,3}(\.\d{1,3}){3}:\d+$

模式解析

  • ^:字符串開頭。
  • \d{1,3}:1 到 3 位數字(IP 段)。
  • (\.\d{1,3}){3}:重複 3 次「點 + 1-3 位數字」,共 4 段 IP。
  • ::字面冒號分隔符。
  • \d+:1 位或多位數字(端口號)。
  • $:字符串結尾。

各語言使用示例

// Java
Pattern pattern = Pattern.compile("^\\d{1,3}(\\.\\d{1,3}){3}:\\d+$");
Matcher matcher = pattern.matcher("192.168.1.118:8083");
boolean valid = matcher.matches();

// JavaScript
const regex = /^\d{1,3}(\.\d{1,3}){3}:\d+$/;
regex.test("192.168.1.118:8083"); // true

// Python
import re
re.match(r'^\d{1,3}(\.\d{1,3}){3}:\d+$', "192.168.1.118:8083") // 匹配

進階:嚴格校驗 IP 數值範圍(0-255)

若需真正校驗 IP 合法性,正則極其複雜,建議用代碼邏輯分段解析:

function isValidIPPort(str) {
    const match = str.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}):(\d+)$/);
    if (!match) return false;
    const [, a, b, c, d, port] = match;
    if ([a,b,c,d].some(x => parseInt(x) > 255)) return false;
    if (parseInt(port) > 65535) return false;
    return true;
}

根據業務場景選擇「僅格式校驗」或「嚴格數值校驗」,前者正則簡單高效,後者代碼邏輯更清晰可維護。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved