关于链接的正确正则表达式模式格式的问题

时间:2018-01-07 11:35:59

标签: javascript regex

pattern_for_links = /
        (((((http|ftp|https):\/{2}|([0-9a-z_-]+\.)+)|)(([0-9a-z_-]+\.)+(com)(:[0-9]+)?
        ((\/([~0-9a-zA-Z\#\+\%@@\.\/_-]+))?(\?[0-9a-zA-Z\+\%@@\/&\[\];=_-]+)?)?))\b)
                    /gmi;

我得到了这个匹配( JS ),这很好并且所有匹配都正确:

http://www.yahoo.com 
yahoo.com/wordss
www.yahoo.com

但是当我在最后添加/时,/不会包含在内( /不匹配)。

http://www.yahoo.com/
yahoo.com/wordss/
www.yahoo.com/

如何使用/

在最后添加pattern_for_links

修改

解决方案:我添加了\b\/?而非\b,现在/也匹配并包含在内。

1 个答案:

答案 0 :(得分:0)

试试这个:

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

取自Regex for URL: SO,稍加修改即可抓住http/https前缀URLsURLs而不带它们。

此外,要快速轻松地制作(和学习)RegEx,请参阅RegExr.com