正则表达式不区分大小写以及解决思路的探索 .

 更新时间:2014年06月14日 13:48:36   投稿:mdxy-dxy  
今天在写一个正则表达式的时候,因为字符有大小写的问题,多种大小写的组合,这时想到了用正则表达式

今天遇见一个消除js正则表达式不区分大小写的问题,网上一搜,发现自己果然是菜鸟。

在js里面//g,其中g表示全局匹配,如果没有这个,那么就意味着只能匹配一次就会自动结束;/i/就表示在匹配的过程中不区分大小写。呵呵。。这个在参数过滤的过程中就很有用了。

复制代码 代码如下:

dxycode=dxycode.replace(/<br\s*\/?>/gi,'\n')

都说到这个份上了,自然情不自禁的看了一下.NET中的正则表达式不区分大小写的情况。在.NET中,RegexOption枚举可以使用影响匹配行为的选项修改正则表达式模式。比如其中的IngoreCase就是匹配过程中忽略大小写的限定。附上代码如下:

Regex.Match (String, String, RegexOptions);

Regex.Replace (String, String, String, RegexOptions)

正则表达式其实是一个很有趣的事情,但是不因正而正则。下面描述一下我今天碰到的问题。

大家可能都会遇到这样的问题,在进行ajax的传输后,利用javascript绑定数据的时候,经常因为注入恶意脚本、html标签未关闭等问题导致页面错版和被别人脚本恶意注入。这个时候的我们想到的第一个解决办法是:将所有标签全部转换成实体。这样页面既不会被恶意脚本注入,又不会出现错版情况。 很好,这是一种解决途径,毕竟菜鸟开始想问题了。但是这样会误杀一篇有用的html标签,比如img,a等等。因此,第一种想法被否定了。

然后菜鸟开始寻找第二种途径。先将问题分解,让我们先解决恶意脚本注入的问题。这个好办,把其中一部分恶意的脚本过滤掉。好啊,这个简单,这个时候就用到了我上面说的正则表达式了。一路走下去,恶意脚本注入得到解决。这里先不指出菜鸟这样做的缺点。先看下一个问题。那么怎样防止页面错版的问题呢。哎呀。。。这个菜鸟可是想破了脑袋,最后的结论是用正则表达式吧为关闭标签给照出来,要么修补未关闭标签,要不直接删除未关闭标签。

再来评论菜鸟的第二种解决途径和第三种方法。这样做有一个共同的确定。就是你手动改变了用户的内容,不经意的用户还会以为你系统有问题,因为缺少很好的用户体验。第二,正则表达式始终是要费能的一个东东,需要不停的比对。虽然给系统的影响可能不是很大,但是能节约性能为什么不节约呢?

最终菜鸟找到了一个很好的方法,对于文本框的输入,采用第一种方法,吧用户的输入内容直接转换为实体。当然如果用户有输入图片和超链接的需要,我们也不能不满足。如何满足?解决途径如下:自定义标签,然后再显示的时候自定义标签转换。此时菜鸟才恍然大悟。

其实菜鸟也在不断的进步的,这个问题的解决体验了一个思想就是:特殊问题特殊处理的思想。有些东西是不能被大众化的,那么我们就对其特殊处理吧!

最后,恭喜菜鸟走出了“因正则而正则”的误区。同时附上正则表达式大全:

https://www.jb51.net/tools/zhengze.html

相关文章

  • ubb代码转换为html

    ubb代码转换为html

    ubb代码转换为html...
    2006-06-06
  • 使用正则表达式替换表情符号核心代码

    使用正则表达式替换表情符号核心代码

    正则表达式替换表情符号核心代码,大家可以参考下。
    2009-09-09
  • 经典Javascript正则表达式[优质排版]

    经典Javascript正则表达式[优质排版]

    正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用
    2013-01-01
  • 正则基础之 小数点

    正则基础之 小数点

    小数点可以匹配除了换行符“\n”以外的任意一个字符,如要匹配小数点本身,用“\”进行转义“\.”。
    2009-07-07
  • 学习正则!超基础简单例子

    学习正则!超基础简单例子

    我一直都觉得正则表达式只要在要用的时候翻一下百度就Ok了,然后今天写php的时候发现,原来我正则完全一点都不懂
    2012-09-09
  • asp.net 正则表达式[经常用的到]

    asp.net 正则表达式[经常用的到]

    经常用的到的一些正则表达式,正则规则是这样写的,大家可以根据自己的需要,用各种语言调用即可
    2008-11-11
  • 正则表达式中的反向预搜索(上)

    正则表达式中的反向预搜索(上)

    这几天在用正则表达式做一个小程序,需要替换内容中的某些特殊字符串。这些字符串的出现是有规律的,那就是在它左面总会特定的内容出现,右面却没有。于是自然就想到了反向预搜索。
    2009-12-12
  • 正则表达式匹配闭合HTML标签(支持嵌套)

    正则表达式匹配闭合HTML标签(支持嵌套)

    先确定我们要解决的问题——从一段Html文本中找出特定id的标签的innerHTML,需要的朋友可以参考下
    2020-02-02
  • js正则表达式之RegExp对象之compile方法  编译正则表达式

    js正则表达式之RegExp对象之compile方法 编译正则表达式

    该方法可以编译指定的正则表达式,编译之后的正则表达式执行速度将会提高,如果正则表达式多次被调用,那么调用compile方法可以有效的提高代码的执行速度,如果该正则表达式只能被使用一次,则不会有明显的效果
    2012-10-10
  • 一看就懂的正则表达式教程

    一看就懂的正则表达式教程

    正则表达式,是简单地字符的序列,可指定特定的搜索模式,下面这篇文章主要给大家介绍了一看就懂正则表达式的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05

最新评论