A-A+
javascript过滤域名及html标签实现代码
文章详细的利用几个实现介绍了在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版,代码如下:
- function doseo() {
- if(!$('domain').value.match(/^([a-z0-9-]{1,}.)?[a-z0-9-]{2,}.([a-z0-9-]{1,}.)?[a-z0-9]{2,}$/i)){
- alert('哈罗~~~首先,请输入正确的域名 😛 ');
- $('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标题及域名难都一搞定了。