【问题标题】:help with a regex code帮助正则表达式代码
【发布时间】:2011-06-21 12:13:09
【问题描述】:

我有这个正则表达式代码

/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i

它可以工作,但有一个问题 您需要在 url 中使用 http:// 来验证它,而我正在做的是,用户不想将 http:// 添加到他们只想拥有 example.com 的 url,如果可能的话我需要它工作天气是否有 http://
我不知道如何制作自己的正则表达式,并且我搜索过但找不到可以满足我需要的正则表达式,除非我只是没有找对地方。 (谷歌:P)

【问题讨论】:

标签: php regex url


【解决方案1】:

不要打扰正则表达式。使用parse_url函数。

【讨论】:

    【解决方案2】:

    你可以让它成为可选的

    /^((?:https?:\/\/+)?[\w\-]+\.[\w\-]+)/i
    

    您不想拥有的部分周围的(?:) 是一个非捕获组,之后的? 使其成为可选。

    我不确定第二个斜杠后面的+ 有什么用,它至少表示前面的字符之一。这意味着它还允许 http:////////// 之类的内容。

    我希望您知道,这个正则表达式与匹配有效的 URL 相去甚远。

    例如,它将匹配类似的东西

    http://////////------------.-
    

    至少

    http://N.O
              ^ after this position you can write what you want and it will match valid.
    

    Here on Regexr你可以看到你的正则表达式匹配。

    请参阅 Purple Coder 的答案以获得可能更好的解决方案。

    【讨论】:

      【解决方案3】:

      /^((https?:\/\/+)?[\w-]+.[\w-]+)/i

      【讨论】:

        【解决方案4】:

        我正在使用这个:

        // 验证字符串是否至少包含一个点。

        var filterWebsite =  /^([a-zA-Z0-9:_\.\-/])+\.([a-zA-Z0-9_\.\-/])+$/;
        

        【讨论】:

          猜你喜欢
          • 2011-06-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多