【问题标题】:Javascript regex to allow numbers and special characters like dot(.) and colon (:) for validating specific hostnamesJavascript 正则表达式允许数字和特殊字符,如点 (.) 和冒号 (:) 来验证特定主机名
【发布时间】:2020-07-25 17:15:56
【问题描述】:

我有以下主机名,我想要相同的正则表达式

127.0.0.1:8181

输入包含数字、点(.)和冒号(:)

我使用了下面的正则表达式,但它们都不起作用

^([0-9]|#|+|*)+$
^[0-9*#+]+$

在下面添加我的代码sn-p

var guidRegex = new RegExp("/[0-9.:]+/")
var hostName = "127.0.0.1:8181";
var match = guidRegex.test(hostName);

执行后match的值为FALSE

【问题讨论】:

标签: javascript regex string hostname


【解决方案1】:

试试:

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

Demo

这将匹配 IPv4 地址,以及出现在末尾的可选端口号。

【讨论】:

    【解决方案2】:

    使用numbers . and : 验证字符串。

    let str = '127.0.0.1:8181';
    console.log(/[0-9.:]+/g.test(str));

    验证 IPV4 ips 地址:

    let str = '127.0.0.1:8181';
    console.log(/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}:([0-9]+)?/g.test(str));
    
    //OR
    
    console.log(/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(:[0-9]+)?$/g.test(str));

    【讨论】:

    • 你的意思是正则表达式只是 "/[0-9.:]+/"
    • 是的,用 `number 验证字符串,.和 : ,但它不会验证 IP 地址,因此您可以使用第二种解决方案
    • 我已经更新了我上面的代码,你给的正则表达式不起作用。你能告诉我吗
    • 好的,让我检查一下
    • 使用new Regex()创建时不需要添加/斜线。尝试这个。 new RegExp("[0-9.:]+")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多