关于正则表达式获取FCKEditor控件上传图片地址
2011-03-20 01:57
471 查看
最近用asp.net做了一个网站,做的是一个小宾馆的门户网站,客户要求后台添加客房描述的时候可以上传图片,并从图片中取出一张图片,作为客房列表显示之用。我用的是FCKEditor控件。
以下为代码部分,
1、传入客房描述,将客房描述中所有图片的src取出,放入集合中,并返回集合
private static List<string> GetInputImgUrls(string HTMLStr)
{
List<string> pics = new List<string>();
string str = string.Empty;
Regex r1 = new Regex(@"<input/s+[^>]*/s*src/s*=/s*([']?)(?<url>/S+)(/S[']?)[^>]*>", RegexOptions.IgnoreCase);
MatchCollection urls1 = r1.Matches(HTMLStr);
foreach (Match match1 in urls1)
{
if (match1.Success)
{
str = match1.Result("${url}");
pics.Add(str.Substring(1));
}
}
if (pics.Count == 0)
{
Regex r2 = new Regex(@"<img/s+[^>]*/s*src/s*=/s*([']?)(?<url>/S+)(/S[']?)[^>]*>", RegexOptions.IgnoreCase);
MatchCollection urls2 = r2.Matches(HTMLStr);
foreach (Match match2 in urls2)
{
if (match2.Success)
{
str = match2.Result("${url}");
pics.Add(str.Substring(1));
}
}
}
return pics;
}
2、从集合中取出第一张作为显示
public static string getFirstImageUrl(string url)
{
List<string> list = GetInputImgUrls(url);
if (list.Count > 0)
{
return list[0];
}
return "";
}
其中,由于FCKEditor控件上传图片有两种格式,一是<input type="img" src=“..." />,二是<img src="..." />
于是添加了两种方式的取值,用第一种取值,添加到集合中,如果集合中为0,再用第二种匹配取值。最终返回集合。
以下为代码部分,
1、传入客房描述,将客房描述中所有图片的src取出,放入集合中,并返回集合
private static List<string> GetInputImgUrls(string HTMLStr)
{
List<string> pics = new List<string>();
string str = string.Empty;
Regex r1 = new Regex(@"<input/s+[^>]*/s*src/s*=/s*([']?)(?<url>/S+)(/S[']?)[^>]*>", RegexOptions.IgnoreCase);
MatchCollection urls1 = r1.Matches(HTMLStr);
foreach (Match match1 in urls1)
{
if (match1.Success)
{
str = match1.Result("${url}");
pics.Add(str.Substring(1));
}
}
if (pics.Count == 0)
{
Regex r2 = new Regex(@"<img/s+[^>]*/s*src/s*=/s*([']?)(?<url>/S+)(/S[']?)[^>]*>", RegexOptions.IgnoreCase);
MatchCollection urls2 = r2.Matches(HTMLStr);
foreach (Match match2 in urls2)
{
if (match2.Success)
{
str = match2.Result("${url}");
pics.Add(str.Substring(1));
}
}
}
return pics;
}
2、从集合中取出第一张作为显示
public static string getFirstImageUrl(string url)
{
List<string> list = GetInputImgUrls(url);
if (list.Count > 0)
{
return list[0];
}
return "";
}
其中,由于FCKEditor控件上传图片有两种格式,一是<input type="img" src=“..." />,二是<img src="..." />
于是添加了两种方式的取值,用第一种取值,添加到集合中,如果集合中为0,再用第二种匹配取值。最终返回集合。
相关文章推荐
- javascript正则表达式获取fckeditor的图片地址
- 巧用正则表达式获取新闻中图片地址
- 使用C#正则表达式获取必应每日图片地址
- 采用正则表达式获取图片地址
- 关于File控件上传图片,java代码获取图片宽高
- swift 获取网页中图片地址的正则表达式
- 正则表达式获取图片地址和长宽高
- 正则表达式获取图片地址图片大小
- 利用正则表达式 获取FCK上传的图片
- 过滤字符串中 url,图片地址的正则表达式
- 正则表达式-判断是不是网络地址的图片
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(二)
- 正则获取图片地址
- PHP通过正则表达式获取网页中的所有图片
- 利用正则表达式获取地址栏参数
- 【Vegas原创】用正则表达式解决FCKEditor图片路径问题
- Js正则表达式提取图片地址
- C#正则表达式匹配HTML中的图片路径,图片地址代码
- PHP正则获取页面所有图片地址
- jQuery获取上传文件的名称的正则表达式