【问题标题】:How to fix regex url pattern如何修复正则表达式 url 模式
【发布时间】:2020-06-25 06:25:39
【问题描述】:

我需要修正我的网址格式:

/^((http(s)?(\:\/\/)){1}(www\.)?([\w\-\.\/])*(\.[a-zA-Z]{2,4}\/?)[^\\\/#?])[^\s\b\n|]*[^\.,;:\?\!\@\^\$ -]/

我认为这个正则表达式没问题,但它不适用于以下网址:https://xx.xx(没有 www)。 'www' 应该是可选的 ((www.)?)。错误在哪里?

【问题讨论】:

    标签: regex


    【解决方案1】:

    问题不在于(www\.)? 部分,而是在那之后的部分。

    看看[^\\\/#?][^\.,;:\?\!\@\^\$ -] 部分。

    所以一个有效的 URL 应该是 https://xx.xx 加上 none of \/#? 加上 none of .,;:?!@^$_- 如果你添加这些 URL 使 URL 有效,例如 https://xx.xx11

    我建议你不要尝试创建自己的正则表达式,因为你错过了很多!

    例如,像.amsterdam 这样的顶级域名是有效的。为什么要捕获这么多组?

    您的正则表达式作为使用https://www.debuggex.com/ 制作的图像:

    【讨论】:

    • 嗯..你有什么建议如何正确地做到这一点吗?我需要用 chrome 扩展和 angular 来实现它。哪个库或只是一个代码可以正确地做到这一点?
    • (Ron van der Heijden),请问您使用什么工具来生成这张有用的说明性图片?
    • 非常感谢@Ron van der Heijden
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    相关资源
    最近更新 更多