手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >js过滤HTML标签以及空格的思路及代码
js过滤HTML标签以及空格的思路及代码
摘要:复制代码代码如下:functionsetContent(str){str=str.replace(/]*>/g,'');//去除HTMLta...

复制代码 代码如下:

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标签中的”</”格式或者“<”格式的。

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

js过滤HTML标签以及空格的思路及代码1

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

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

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

div

我需要的文字</div

我需要的文字</p

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

div>我需要的文字</div

p>我需要的文字</p

br /

再加上后面的>就可以匹配下面的字符了:

div>我需要的文字</div>

p>我需要的文字</p>

br />

这样就完成了一对HTML标签的匹配了。(多句话,总觉得这个匹配有点啰嗦,但是不知道到底在哪个地方啰嗦)

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

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

【js过滤HTML标签以及空格的思路及代码】相关文章:

Java数据类型以及变量的定义

ubuntu下安装nodejs以及升级的办法

js+HTML5基于过滤器从摄像头中捕获视频的方法

将HTML自动转为JS代码

打印/预览/设置的客户端代码

jquery实现的判断倒计时是否结束代码

JSON简介以及用法汇总

光标定位等TextRange的操作的范例代码

一些有关检查数据的JS代码

Javascript随机显示图片的源代码

精品推荐
分类导航