我有一个图像url正则表达式,用于使用ng-pattern
指令验证表单上的图像。
目前,我正在努力适应https://google.com.png
这样的情况。任何帮助将非常感激。
正则表达式:
'^((?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?)\.(png|jpg|jpeg|gif|PNG|JPG|JPEG|GIF)$'
最好在这里查看:
https://regex101.com/r/dH1wT6/1
最佳答案
简化正则表达式:
^(?!mailto)(?:https?|ftp):\/(?:\/?(?:[.#@?=]?[a-z0-9\u00a1-\uffff]+)+)+[.]?(?:png|jpe?g|gif)$
为此,需要使用i标志以使搜索不区分大小写。
但是您应该用您的url列表进行验证,如果允许的话很多。
可以测试here
如果将正则表达式放在javascript字符串中,请不要忘了您需要反斜杠。