当前位置:编程学习 > JS >>

javascript过滤域名及html标签实现代码

分析

一个完整的域名,由根域、顶级域、二级、三级……域名构成,每级域名之间用点分开,每级域名由字母、数字和减号构成(第一个字母不能是减号),不区分大小写,长度不超过63。
  很显然,单独的名字可以由正则表达式[a-zA-Z0-9][-a-zA-Z0-9]{0,62}来匹配,而完整的域名至少包括两个名字(比如google.com,由google和com构成),最后可以有一个表示根域的点

匹配完整域名的正则表达式:

 代码如下 复制代码
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?

我们最简单版的js正则过滤取域名

域名正则表达式js版

 代码如下 复制代码
function doseo() {
if(!$('domain').value.match(/^([a-z0-9-]{1,}.)?[a-z0-9-]{2,}.([a-z0-9-]{1,}.)?[a-z0-9]{2,}$/i)){
alert('哈罗~~~首先,请输入正确的域名 :P ');
$('domain').value = '';
$('domain').focus();
return;
}

上面可以用来判断域名了,那么我要过滤域名怎么办,看实例


经这位朋友测试,他还是比较喜欢这种效果的(我个人还是比较喜欢先去掉空格再检测),应他要求把源码放出:

 代码如下 复制代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>测试</title>
</head>
<body>
<script language="javascript">
function checkurl(obj){
    var pattern = /cs*os*m|cs*n|ns*es*t|os*rs*g/gi;
    if(pattern.test(obj.value)){
        alert("留言中有com|cn|net|org,有广告链接嫌疑,不能提交!");
        obj.value = "";
        obj.focus();
        return false;
    }
    else{
         //做你想做的事
    }
}
</script>
<textarea name="content" cols="60" rows="10" wrap="VIRTUAL" id="content"
       onBlur="javascript:checkurl(this);"></textarea>

</head>
</body>
</html>


网上找到js过滤html标题的代码如下:

 

 代码如下 复制代码
function setContent(str) {
str = str.replace(/</?[^>]*>/g,''); //去除HTML tag
str.value = str.replace(/[ | ]*n/g,'n'); //去除行尾空白
//str = str.replace(/n[s| | ]*r/g,'n'); //去除多余空行
return str;
}


测试的时候发现这段代码不能过滤掉网页中空格字符(即: )。于是自己又改造了一下:

 代码如下 复制代码
function removeHTMLTag(str) {
            str = str.replace(/</?[^>]*>/g,''); //去除HTML tag
            str = str.replace(/[ | ]*n/g,'n'); //去除行尾空白
            //str = str.replace(/n[s| | ]*r/g,'n'); //去除多余空行
            str=str.replace(/ /ig,'');//去掉 
            return str;
    }

恩,我的要求达到了。
这样我们的过滤域名,html标题及域名难都一搞定了。

补充:网页制作,js教程 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,