摘要:代码如下: 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; }

脚本宝典收集整理的这篇文章主要介绍了

js实例教程-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;
}

 

恩,我的要求达到了。

现在来稍稍解释一下所用到的三个正则表达吧(需要说明的是,因为自己也是刚刚接触,也许我的解释并不是正确的,仅供参考):

第一个:/<//?[^>]*>/g

在js中正则表达式是以“/”开头的,后面的/g,含义是表示全局模式,意思是在将匹配的模式应用于整个字符串,而不是在第一次匹配上之后就停止匹配了。

<//?[^>]*> 这个分开来解释,其中第二个字符“/”是一个转移字符,用来转移后面的”/”字符的。?匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。所以<//?就是匹配html标签中的”</”格式或者“<”格式的。

再来说[^>]*>。[]是含义是:

^的含义是:匹配一行的开始。例如正则表达式^When in能够匹配字符串"When in the course of human events"的开始,但是不能匹配"What and When in the"。意思就是匹配以“When in”开头的文字。

*的含义是:匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符

因此[^>]*意思是匹配>之外的字符。所以[^>]可以匹配出的模式可以像下面这样的:

p
我需要的文字</p

我需要的文字</p

*和前面的[^>]结合在一起就可以匹配下面这些字符了:

p>我需要的文字</p
p>我需要的文字</p
br /
再加上后面的>就可以匹配下面的字符了:

p>我需要的文字</p>
p>我需要的文字</p>
br />
这样就完成了一对HTML标签的匹配了。(多句话,总觉得这个匹配有点拢遣恢赖降自谀母龅胤)

第二个:/[ | ]*/n/g:我也没有看懂

第三个:/ /ig:就是直接查找 字符,后面的/ig的含义是在全局模式下进行不区分大小写的查找。g代表全局,i表示不区分大小写。

代码如下:

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;
}

 

恩,我的要求达到了。

现在来稍稍解释一下所用到的三个正则表达吧(需要说明的是,因为自己也是刚刚接触,也许我的解释并不是正确的,仅供参考):

第一个:/<//?[^>]*>/g

在js中正则表达式是以“/”开头的,后面的/g,含义是表示全局模式,意思是在将匹配的模式应用于整个字符串,而不是在第一次匹配上之后就停止匹配了。

<//?[^>]*> 这个分开来解释,其中第二个字符“/”是一个转移字符,用来转移后面的”/”字符的。?匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。所以<//?就是匹配html标签中的”</”格式或者“<”格式的。

再来说[^>]*>。[]是含义是:

^的含义是:匹配一行的开始。例如正则表达式^When in能够匹配字符串"When in the course of human events"的开始,但是不能匹配"What and When in the"。意思就是匹配以“When in”开头的文字。

*的含义是:匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符

因此[^>]*意思是匹配>之外的字符。所以[^>]可以匹配出的模式可以像下面这样的:

p
我需要的文字</p

我需要的文字</p

*和前面的[^>]结合在一起就可以匹配下面这些字符了:

p>我需要的文字</p
p>我需要的文字</p
br /
再加上后面的>就可以匹配下面的字符了:

p>我需要的文字</p>
p>我需要的文字</p>
br />
这样就完成了一对HTML标签的匹配了。(多句话,总觉得这个匹配有点拢遣恢赖降自谀母龅胤)

第二个:/[ | ]*/n/g:我也没有看懂

第三个:/ /ig:就是直接查找 字符,后面的/ig的含义是在全局模式下进行不区分大小写的查找。g代表全局,i表示不区分大小写。

觉得可用,就经常来吧!Javascript技巧 脚本宝典 欢迎评论哦! js技巧,巧夺天工,精雕玉琢。小宝典献丑了!

总结

以上是脚本宝典为你收集整理的

js实例教程-js过滤HTML标签以及空格的思路及代码

全部内容,希望文章能够帮你解决

js实例教程-js过滤HTML标签以及空格的思路及代码

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过