`
dimingchan
  • 浏览: 54897 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

正则表达式匹配html 过滤非法字符

阅读更多
正则表达式匹配html 过滤非法字符
匹配一个html标签,匹配table如下:

<table.*?>[ss]*</table>

<table.*?>[ss]*?</table>

以上两个表达式,一个加了"?"和一个却不加"?",那么这有什么区别呢?
我们知道"?"在正则表达式里是一个通配符:匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。

在这里,通过测试,我们得出这样的结论:在不加"?"的情况下,在匹配下面一段内容的时候:

<table>这是第一个table</table>
我不是table里的内容
<table>这是第二个table</table>
我也不是table里的内容
<table>这是第三个table</table>

<?

$str=preg_replace("/s+/", " ", $str); //过滤多余回车
$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)

$str=preg_replace("/<!--.*?-->/si","",$str); //注释
$str=preg_replace("/<(!.*?)>/si","",$str); //过滤doctype
$str=preg_replace("/<(/?html.*?)>/si","",$str); //过滤html标签
$str=preg_replace("/<(/?head.*?)>/si","",$str); //过滤head标签
$str=preg_replace("/<(/?meta.*?)>/si","",$str); //过滤meta标签
$str=preg_replace("/<(/?body.*?)>/si","",$str); //过滤body标签
$str=preg_replace("/<(/?link.*?)>/si","",$str); //过滤link标签
$str=preg_replace("/<(/?form.*?)>/si","",$str); //过滤form标签
$str=preg_replace("/cookie/si","cookie",$str); //过滤cookie标签

$str=preg_replace("/<(applet.*?)>(.*?)<(/applet.*?)>/si","",$str); //过滤applet标签
$str=preg_replace("/<(/?applet.*?)>/si","",$str); //过滤applet标签

$str=preg_replace("/<(style.*?)>(.*?)<(/style.*?)>/si","",$str); //过滤style标签
$str=preg_replace("/<(/?style.*?)>/si","",$str); //过滤style标签

$str=preg_replace("/<(title.*?)>(.*?)<(/title.*?)>/si","",$str); //过滤title标签
$str=preg_replace("/<(/?title.*?)>/si","",$str); //过滤title标签

$str=preg_replace("/<(object.*?)>(.*?)<(/object.*?)>/si","",$str); //过滤object标签
$str=preg_replace("/<(/?objec.*?)>/si","",$str); //过滤object标签

$str=preg_replace("/<(noframes.*?)>(.*?)<(/noframes.*?)>/si","",$str); //过滤noframes标签
$str=preg_replace("/<(/?noframes.*?)>/si","",$str); //过滤noframes标签

$str=preg_replace("/<(i?frame.*?)>(.*?)<(/i?frame.*?)>/si","",$str); //过滤frame标签
$str=preg_replace("/<(/?i?frame.*?)>/si","",$str); //过滤frame标签

$str=preg_replace("/<(script.*?)>(.*?)<(/script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/<(/?script.*?)>/si","",$str); //过滤script标签
$str=preg_replace("/网页特效/si","javascript",$str); //过滤script标签
$str=preg_replace("/vbscript/si","vbscript",$str); //过滤script标签
$str=preg_replace("/on([a-z]+)s*=/si","on\1=",$str); //过滤script标签
$str=preg_replace("/&#/si","&#",$str); //过滤script标签,如javascript:alert('aabb)

?>
分享到:
评论

相关推荐

    java正则表达式 过滤特殊字符的正则表达式

    Java 正则表达式过滤特殊字符的正则表达式 Java 正则表达式是 Java 语言中的一种强大的文本处理工具,能够对字符串进行复杂的匹配、提取和替换操作。本文将详细介绍 Java 正则表达式在过滤特殊字符方面的应用。 ...

    IP地址的正则表达式

    7. **.**:匹配点号,但在这里使用了转义字符(\),因为点号在正则表达式中是特殊字符,代表任意单个字符。 8. **[0-9]**:匹配任何单个数字,包括0。 整个表达式重复四次,每次后面跟着一个点号和下一个表达式,...

    只验证数字和字母的正则表达式

    2. **安全性**:虽然该正则表达式能有效过滤非法字符,但在实际应用中还需结合其他安全措施来进一步增强系统的安全性。 3. **用户体验**:合理的错误提示信息能够帮助用户更好地理解输入要求,提升用户体验。 综上...

    正则表达式 Java 判断字串是否合理

    正则表达式是一种强大的文本处理工具,它能够帮助我们匹配、查找、替换等操作符合某种规则的字符串。在Java中,通过`java.util.regex`包提供了对正则表达式的支持。 ### 2. 邮箱地址验证 在实际应用中,经常需要...

    Java过滤特殊字符的正则表达式.doc

    例如,在实际项目中,可能需要过滤用户输入的非法字符,或者从大量文本数据中提取有用的信息,这些都可以借助正则表达式的强大功能来实现。 总结来说,Java 中的正则表达式是非常有用的工具,它可以帮助我们高效地...

    很强大美观的Regex正则表达式测试工具

    后端开发中,正则表达式则常用于数据清洗、过滤非法请求以及数据提取等任务。不论是在前端还是后端,熟练掌握正则表达式都能极大地提高开发效率。 通过运行压缩包中的"工具_正则表达式测试.exe"文件,开发者可以...

    易语言正则表达式类匹配中文源码

    在中文环境中,正则表达式的应用同样广泛,尤其是在处理中文文本时,如搜索关键词、过滤非法字符、提取特定格式的信息等。易语言(EasyLanguage)是一款面向普通用户的编程语言,它提供了易学易用的接口来实现正则...

    PHP使用正则表达式实现过滤非法字符串功能示例

    本示例主要展示了如何使用PHP的正则表达式功能来过滤非法字符串,特别是针对留言板数据提交的情况,防止恶意用户输入可能破坏系统或者安全的数据。 首先,我们需要了解PHP中的`preg_replace`函数。`preg_replace`是...

    js正则表达式限制文本框只能输入字母和汉字

    - **提示信息**:在用户输入非法字符时显示提示信息。 - **输入反馈**:通过颜色变化等方式给予用户直观的反馈。 - **多语言支持**:如果应用面向全球用户,需要考虑其他语言的支持。 通过这种方式,我们可以有效地...

    javascript正则表达式表单验证大全

    使用onkeyup和onbeforepaste事件监听器,结合正则表达式,可以实时过滤用户的输入,限制只能输入特定类型的字符,如仅允许中文、英文或数字,有效防止非法输入,提高数据安全性。 以上正则表达式及其应用,覆盖了从...

    java 正则表达式

    Java正则表达式是Java编程语言中用于处理文本模式匹配的强大工具,它遵循Perl风格的正则表达式语法。正则表达式可以用来验证、提取、替换或查找字符串中的特定模式,对于输入数据的验证和格式化尤其有用。以下是一些...

    正则表达式大全笔记总结

    本文将对几个常见的正则表达式应用场景进行总结,包括中国电话号码验证、邮政编码验证、电子邮件验证、身份证验证、常用数字验证、非法字符验证以及日期验证等。 #### 二、知识点详解 ##### 2.1 中国电话号码验证 ...

    美观强大的正则表达式测试工具

    - **后端**:后端开发者使用正则表达式处理和验证请求数据,过滤非法字符,防止SQL注入等安全问题,同时也用于日志分析、数据清洗等任务。 4. **推荐工具**: - **Regex101**:在线的正则表达式测试平台,支持...

    正则表达式精品资料

    4. URL路由:在路由配置中,使用正则表达式匹配不同类型的URL请求。 五、进阶技巧 1. 非贪婪匹配:在量词后加上`?`,如`.*?`,使匹配尽可能少的字符。 2. 条件匹配:`(?(条件)匹配表达式1|匹配表达式2)`,根据条件...

    判断一个字串中是否有汉字的正则表达式

    在IT领域,正则表达式是一种强大的文本处理工具,用于模式匹配、搜索和替换字符串中的特定字符或序列。本文将详细解析如何使用正则表达式来判断一个字符串中是否包含汉字,以及提供一个具体的示例代码,帮助读者理解...

    ️ 讲解关于正则表达式,前端,后端等相关的知识。也记录自己的一些学习内容.zip

    1. **数据过滤**:在接收用户输入数据时,后端需要对数据进行清洗,去除非法字符或字符串,防止SQL注入等安全问题。 2. **路由匹配**:在RESTful API设计中,正则表达式用于匹配URL路径,实现动态路由。 3. **日志...

    正则表达式的基础知识、简介和一些简单运用

    4. **过滤非法字符**:在输入框中防止用户输入某些非法字符,比如禁止用户输入除字母和数字之外的其他字符,可以用`\W`或`[^a-zA-Z0-9]`来实现。 通过以上介绍,我们可以看到正则表达式不仅能够帮助我们高效地进行...

Global site tag (gtag.js) - Google Analytics