A-A+

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

2016年01月14日 前端设计 暂无评论 阅读 7 views 次

文章详细的利用几个实现介绍了在js中利用js正则表达式来过滤域名及正则域名以及过滤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版,代码如下:

  1. function doseo() {  
  2. if(!$('domain').value.match(/^([a-z0-9-]{1,}.)?[a-z0-9-]{2,}.([a-z0-9-]{1,}.)?[a-z0-9]{2,}$/i)){  
  3. alert('哈罗~~~首先,请输入正确的域名 😛 ');  
  4. $('domain').value = '';  
  5. $('domain').focus();  
  6. return;  
  7. }  

上面可以用来判断域名了,那么我要过滤域名怎么办,看实例,经这位朋友测试,他还是比较喜欢这种效果的,我个人还是比较喜欢先去掉空格再检测,应他要求把源码放出,代码如下:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
  2. <html>  
  3. <head>  
  4.     <title>测试</title>  
  5. </head>  
  6. <body>  
  7. <script language="javascript">  
  8. function checkurl(obj){  
  9.     var pattern = /cs*os*m|cs*n|ns*es*t|os*rs*g/gi;  
  10.     if(pattern.test(obj.value)){  
  11.         alert("留言中有com|cn|net|org,有广告链接嫌疑,不能提交!");  
  12.         obj.value = "";  
  13.         obj.focus();  
  14.         return false;  
  15.     }  
  16.     else{  
  17.          //做你想做的事  
  18.     }  
  19. }  
  20. </script>  
  21. <textarea name="content" cols="60" rows="10" wrap="VIRTUAL" id="content"  
  22.        onBlur="javascript:checkurl(this);"></textarea>  
  23. </head>   
  24. </body>  
  25. </html>  

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

  1. function setContent(str) {  
  2. str = str.replace(/</?[^>]*>/g,''); //去除HTML tag  
  3. str.value = str.replace(/[ | ]*n/g,'n'); //去除行尾空白  
  4. //str = str.replace(/n[s| | ]*r/g,'n'); //去除多余空行  
  5. return str;  
  6. }  

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

  1. function removeHTMLTag(str) {  
  2.             str = str.replace(/</?[^>]*>/g,''); //去除HTML tag  
  3.             str = str.replace(/[ | ]*n/g,'n'); //去除行尾空白  
  4.             //str = str.replace(/n[s| | ]*r/g,'n'); //去除多余空行  
  5.             str=str.replace(/&nbsp;/ig,'');//去掉&nbsp;  
  6.             return str;  
  7.     }  

恩,我的要求达到了。

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

标签:

给我留言