提交一个网址 如何判断该网址在数据库中已存在

mdh_zl 2010-09-08 11:20:53
有这样一个需求
就是让用户输入一个网址 比如:www.163.com ,163.com
当然 www.163.com ,163.com 算一个网址

假定用户输入的网址为正确的 那如何判读输入的库中是否有了呢??

如果需要正则 , 请给出正则表达式 谢谢
...全文
179 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
mdh_zl 2010-09-09
  • 打赏
  • 举报
回复
真的没有好办法了吗
zakumiwb 2010-09-08
  • 打赏
  • 举报
回复
mdh_zl 2010-09-08
  • 打赏
  • 举报
回复
首先谢谢 5楼兄弟

但数据库中又如何对比呢 数据库中的数据 可能是www.163.com 也可能是163.com 还可能是hao163.com

求解 谢谢
地下室小红叔 2010-09-08
  • 打赏
  • 举报
回复
using System.Text.RegularExpressions;
public void SaveURL()
{
//依据保存最简化地址原则
string input = "http://www.163.com/";//也可为www.163.com或163.com 结果一样
string output= Regex.Replace(input,"((http://)?www.)?(163.com)(/)?","$3",RegexOptions.IgnoreCase|RegexOptions.Singleline);
//output="163.com" 与数据库中对比判断该output值
}
地下室小红叔 2010-09-08
  • 打赏
  • 举报
回复
using System.Text.RegularExpressions;
public void SaveURL()
{
//依据保存最简化地址原则
string input = "http://www.163.com/";//也可为www.163.com或163.com 结果一样
string output= Regex.Replace(input,"((http://)?www.)?(163.com)(/)?","$3",RegexOptions.IgnoreCase|RegexOptions.Singleline);
//output="163.com" 与数据库中对比判断该output值
}
mdh_zl 2010-09-08
  • 打赏
  • 举报
回复
咋就没人管呢
mdh_zl 2010-09-08
  • 打赏
  • 举报
回复
楼上 不是吧 用户可能输入http://163.com 或者163.com

这样如何查询呢
porschev 2010-09-08
  • 打赏
  • 举报
回复
写一个方法在数据库中查询就是了。。。。返回BOOL变量
mdh_zl 2010-09-08
  • 打赏
  • 举报
回复
22楼 你的办法肯定是不行的
gaopeng1988 2010-09-08
  • 打赏
  • 举报
回复

create proc '存储过程名'
@url varchar(100) --要存入的网址
as
declare @int int
set @int=len(@url)+1
select count(*) from tableName where right('字段名',len(@url))=@url and left(right('字段名',@int),1)<>'.' and left(right('字段名',@int),1)<>'/'
村长_乐 2010-09-08
  • 打赏
  • 举报
回复
搜索引擎分词技术
yypf2540017 2010-09-08
  • 打赏
  • 举报
回复
正则判断的太死或太活 以后输入时总会出问题。。
aspxcss 2010-09-08
  • 打赏
  • 举报
回复
select * from tab where like %163.com%
地下室小红叔 2010-09-08
  • 打赏
  • 举报
回复
最简单的就是正则验证域名 当然我那个正则式需要改
楼主继续探索吧
OVER
mdh_zl 2010-09-08
  • 打赏
  • 举报
回复
域名ip不太好 ip可能会变 因为会有一堆小网站的录入
地下室小红叔 2010-09-08
  • 打赏
  • 举报
回复
还可以你库里存域名的IP 和域名对应关系

用户输入一个域名 (如news.sohu.com) 取得IP与库中已有对比
System.Net.IPAddress[] ip=System.Net.Dns.GetHostAddresses("news.sohu.com");


只判断一个ip[0](如果有)即可
mdh_zl 2010-09-08
  • 打赏
  • 举报
回复
唉 有没有好点的方法呢
地下室小红叔 2010-09-08
  • 打赏
  • 举报
回复
是的
mdh_zl 2010-09-08
  • 打赏
  • 举报
回复
WO_YOU_XIE_SHANG_XIN

如果 数据库里面有 hao163.com 是不是也返回1啊
even0220 2010-09-08
  • 打赏
  • 举报
回复
个人觉得不用数据库匹配

数据库取出后,正则匹配不就可以了?

没有www就直接匹配

有www就匹配后面的。
加载更多回复(4)

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧