返回
正则表达式教程:图片链接地址校验
正则表达式
2024-02-28 15:55:13
一、正则解释
正则表达式:/^https?://(.+/)+.+(.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i
1. 语法解释
- ^https?://(.+/)+ :匹配以 http 或 https 开头的 URL,后跟一个或多个目录层级(由 / 分隔)。
- .+ :匹配 URL 中的文件名和扩展名。
- (.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)) :匹配以下图片格式的扩展名:gif、png、jpg、jpeg、webp、svg、psd、bmp、tif。
- $/i :行尾匹配,并启用不区分大小写的匹配。
2. 分解
部分 | |
---|---|
^ | 行首匹配 |
https? | 匹配 http 或 https |
:// | 匹配 "://" |
(.+/) | 匹配一个或多个目录层级 |
.+ | 匹配文件名和扩展名 |
. | 匹配句点(扩展名分隔符) |
(gif | png |
$ | 行尾匹配 |
i | 不区分大小写匹配 |
二、使用场景
该正则表达式可用于:
- 验证网站或应用程序中使用的图片链接地址是否有效。
- 从文本或 HTML 代码中提取图片链接地址。
- 确保上传到服务器或数据库中的文件具有支持的图片格式。
三、代码示例
JavaScript
const pattern = /^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i;
const result = pattern.test('https://www.abc.com/logo.png'); // true
Java
import java.util.regex.Pattern;
public class ImageLinkValidator {
private static final Pattern PATTERN = Pattern.compile("^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i");
public static boolean isValid(String link) {
return PATTERN.matcher(link).matches();
}
public static void main(String[] args) {
String link = "https://www.abc.com/logo.png";
boolean result = isValid(link);
System.out.println(result); // true
}
}
PHP
<?php
$pattern = '/^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i';
$result = preg_match($pattern, 'https://www.abc.com/logo.png'); // 1
?>
Python
import re
pattern = re.compile(r'^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i')
result = pattern.match('https://www.abc.com/logo.png') is not None // True