【问题标题】:url regex with unique rules具有独特规则的 url 正则表达式
【发布时间】:2018-04-24 09:49:47
【问题描述】:

domain = www.example.xx | example.xx 我需要一个带有这些规则的正则表达式查询:

  • 根据世界域规则的有效域。
  • 不包含连续 2 个点。
  • 不是IP\Ftp。
  • 最后:xxxx 不允许
  • 域(.com 或 .xx.xx)的结尾不能少于 2 位。

我尝试过将 input type='url' 与这个正则表达式结合起来:

(?=(^[^.]+(?:\.[^.]+)+$))(?=([-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?))

但它打破的是我添加 http:/http: 或添加 www. 而不是 2 位数规则...

【问题讨论】:

  • 什么“不包含连续 2 个点”。方法? www.example.net 包含 2 个点,不是吗?
  • @Isitea 连续 2 个点将是“..”,例如“www..example.net”
  • @MátéSafranka 这就是我的意思

标签: javascript regex


【解决方案1】:

按照 RegEx 模式进行测试:

{
  let pattern = /^[^\s]+?(?!\d+)[^.\s]+?(?<!\.[a-zA-Z]{2,2})\.(?!com)([a-zA-Z]{2,3}$)/g;
  function test( string ) {
    console.log( string.match( pattern ) );
  }
  test( `example.org` );
  test( `www.example.net` );
  test( `www.example.nz` );
  test( `12.33.29.24` );
  test( `example.nz` );
  test( `example.com` );
  test( `example.co.kr` );
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多