匹配网址的正则问题

jellday 2010-08-06 04:45:48
用户输入的必须是网址,例如 google.com, http://google.com, http://www.google.com,http://www.google.com.hk
去除网址前缀,只保留域名部分即 google.com, google.com.hk


function chksite(obj){
if(obj.value!=""){
obj.value=obj.value.toLowerCase();
var reg = /^(http:\/\/)?([wW]{3}\.)?$/;
obj.value = obj.value.replace(reg,"");}
}


水平太次,这样没有任何反应,求高手帮忙写个好点的
...全文
327 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jellday 2010-08-07
  • 打赏
  • 举报
回复
首先多谢各位指教,但是

有个很重要的问题都没做——没有判断输入的是否符合域名网址规范!



另外,以上所有人的问题如下:
1楼3楼https
2-8楼的遇到 www.google.com 就不适用,5-7楼,www后忘了加"."
3楼的最靠普,加上https?就OK了


我自己写的判断是否为有效顶级域名网址的正则:
var regweb=/(https?\:\/\/)?(w{3}\.)?[\w-]{3,}\.[a-z]{2,4}(\.[a-z]{2})?$/;


但是像 mail.com.net.uk.uk 这种得无效网址就不会抱错!
"."不应该超过2个(不算www.),如果有2个"."后面应该是两位字母(.net.cn)。我这样说对吗?(新生效的中文网址不在讨论范围)

再求高手指教!!
Crazywa 2010-08-07
  • 打赏
  • 举报
回复
re = /.*www\./
不行么?
mingfish2 2010-08-07
  • 打赏
  • 举报
回复
5楼的答案可以了
kaifadi 2010-08-07
  • 打赏
  • 举报
回复
var re=/^https?:\/\/([wW]{3}\.)?/;
var str='https://WWW.google.com';
var str1=str.replace(re,"");
alert(str1)
snopo 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lsswtdnr123 的回复:]

引用 5 楼 lxcnn 的回复:

try...

JScript code
<script type="text/javascript">
var data = ["google.com", "http://google.com", "http://www.google.com", "http://www.google.com.hk"];
var reg = /^http:\/……
[/Quote]


加上便是。
var reg = /https?:\/\/(www)?/ig;
lsswtdnr123 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lxcnn 的回复:]

try...

JScript code
<script type="text/javascript">
var data = ["google.com", "http://google.com", "http://www.google.com", "http://www.google.com.hk"];
var reg = /^http:\/\/(www)?/ig;
……
[/Quote]

耶 你没区分https
-过客- 2010-08-06
  • 打赏
  • 举报
回复
try...

<script type="text/javascript"> 
var data = ["google.com", "http://google.com", "http://www.google.com", "http://www.google.com.hk"];
var reg = /^http:\/\/(www)?/ig;
for(var i=0;i<data.length;i++)
{
document.write("源字符串:" + data[i] + " 替换结果:" + data[i].replace(reg, "") + "<br />");
}
</script>
lsswtdnr123 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lsswtdnr123 的回复:]

JScript code
function chksite(str){
var val = str.toLowerCase().replace(/^\s+|\s+$/g,'');
return val===""?false:val.replace(/^https?:\/\/(www.)?/,"");
}
alert(chksite('http://google.com'))
……
[/Quote]
额 没区分大小写
/^https?:\/\/(www.)?/i
bonnibell 2010-08-06
  • 打赏
  • 举报
回复
var reg = /(http\:\/\/)?([wW]{3}\.)?/g;
lsswtdnr123 2010-08-06
  • 打赏
  • 举报
回复
function chksite(str){
var val = str.toLowerCase().replace(/^\s+|\s+$/g,'');
return val===""?false:val.replace(/^https?:\/\/(www.)?/,"");
}
alert(chksite('http://google.com'))
alert(chksite('http://www.google.com'))
alert(chksite('https://www.google.com'))
onlylikews 2010-08-06
  • 打赏
  • 举报
回复
var reg=/^((http://)|(http://www.))?/

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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