神奇的JavaScript之正则

 今朝在技术群里,碰到有人问这样一个问题:使用正则去掉字符串中相邻的重复字符,比如字符串"ddssssaaaadkslsls",去除相邻重复字符后,结果为"dsadksls"。

    仔细琢磨后,我的实现是这样的:

1 'ddssssaaaadkslsls'.replace(/(\w+?)(?:\1+)/g, '$1');//运行结果为dsadksls

这里涉及到正则表达式的知识点有:分组、反向引用、非捕获分组(貌似是这样称呼)、懒惰匹配、全局模式。对于具体知识点描述,本文不会在此赘述,有兴趣的客官可以翻阅<JavaScript权威指南>。
    如上题算是较简单字符串处理功能,但不用正则表达式的话,逻辑就会变得相当复杂,倘若各位闲得蛋疼可试着去实现。
    JQuery源码的选择器(selector)实现就使用大量复杂正则表达式,有很多我至今还没弄明白,到时抽空回去看看后再写篇读后感。

posted on 2013-10-10 14:11  shiny_bender  阅读(177)  评论(0编辑  收藏  举报

导航