正则表达式匹配某些URL

时间:2019-04-14 18:17:56

标签: javascript regex

它应该与那些网址匹配

https://example.com/id/username/
http://example.com/id/username/
https://www.example.com/id/username
http://example.com/id/username/

基本上它应该以{{1​​}}或http开头,当httpswww时可能是example.com,最后一个用户名可以是任何东西,而{{ 1}}并不总是结尾

用户名可以是任何

到目前为止,我已经知道了:

/id

还介绍了如何使用正则表达式检查网址是否以7个数字结尾,例如/ if (input.match(/http\:\/\/example\.com/i)) { console.log('-'); } 1234567/不一定总是结尾

3 个答案:

答案 0 :(得分:2)

使用以下正则表达式

http(s)?:\/\/(www\.)example.com\/id\/[a-zA-Z0-9]+

如果需要,可以根据用户名格式更改[a-zA-Z0-9]。请参见以下示例:

  • [a-zA-Z0-9] + ==>用户名包含大写字母,小写字母和数字。 (john008)
  • [a-zA-Z] + ===>用户名包含大写,小写。 (约翰)
  • [0-9] + ===>用户名仅包含数字。 (123456)

答案 1 :(得分:1)

没有进一步的说明,您可以使用

\bhttps?:.+?example\.com\/[a-zA-Z]+\/\w+\/?(?=\s|\Z)

请参见a demo on regex101.com


这是

\b                   # a word boundary
https?:              # http/https:
.+?                  # anything else afterwards, lazily
example\.com         # what it says
\/[a-zA-Z]+\/\w+\/?  # /id/username with / optional
(?=\s|\Z)            # followed by a whitespace or the end of the string

答案 2 :(得分:0)

https?\:\/\/(www\.)?example\.com\/id\/([a-zA-Z]+)\/?