JavaScript中常用的正则表达式日常整理(全)
测试代码如下: lt;script type="text/javascript"gt; function replaceReg(reg,str){ return str.replace(reg,function(m){return 'lt;a href="'+m+'"gt;'+m+'lt;/agt;';}) } var reg = /http://[w-]*(.[w-]*)+/ig; var str = '将一个用户输入的一段文字中的url替换成可以点击的link地址。 测试一下:http://www.blueidea.com紧接着中文,还有http://bbs.blueidea.com is very good!http://blueidea.com!最后在看看带.cn的:http://www.sina.com.cn呵呵。'; document.write(replaceReg(reg,str)+'lt;br /gt;'); 从HTML代码段删除指定标签极其内容 来源:关于正则的问题 在一段代码中去除lt;script ...... /scriptgt;, lt;headgt;...lt;/headgt;,lt;%.....%gt;等代码块 隆的正则: /lt;(script|meta|%)[sS]*#63;/(script|meta|%)gt;/ 试了一下,匹配如下文本正常: lt;script type="text/javascript"gt; /lt;(script|head|%)[sS]*#63;/(script|head|%)gt;/ig 匹配有嵌套的标签: lt;headgt; 我是要被删除的脚本 哎。就剩下我了。 实际匹配的内容是: lt;headgt; 我是要被删除的脚本 这是因为[sS]*#63;里的非贪婪造成的。可以使用JavaScript正则里的反向引用来解决这个问题,如果起始标签匹配了head,那么结束标签也必须是head。 最后的正则如下: /lt;(script|head|%)[sS]*#63;/1gt;/ig 用正则给文本分段 来源:怎样用正则分段落 原代码:[title]标题一[/title]内容一232323sdfga [title]标题二[/title]内容二2232323 [title]标题三[/title]内容三2232323 要把文本分段成如下格式: 一、[title]标题一[/title]内容一232323sdfga 二、[title]标题二[/title]内容二2232323 三、[title]标题三[/title]内容三2232323 只要用正则匹配title就可以了,所以正则比较简单 /[title]/ig 至于开始的的汉字序号,只要一个数组就解决了,最终代码如下: lt;script type="text/javascript"gt; function replaceReg(reg,str){ var mark =0; return str.replace(reg,function(m){mark++;return 'lt;br /gt;'+arr[mark]+'、'+m;}) } var arr = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]; var reg = /[title]/ig; var str = '[title]标题一[/title]内容一232323sdfga [title]标题二[/title]内容二2232323 [title]标题三[/title]内容三2232323'; document.write(replaceReg(reg,str)+'lt;br /gt;'); lt;/scriptgt; 转换源代码中的标签 来源:一个正则上的问题 将代码中的HTML标签img转换为[img]url[/img]。 /lt;img(#63;:s*w*#63;s*=s*".+#63;")*#63;s*srcs*=s*"(.+#63;)"(#63;:s*w*#63;s*=s*".+#63;")*s*gt;/ig 这段正则和匹配链接标签的正则基本一样,修改如下,标签名img,没有结束标签而是gt;结束。 测试代码如下: lt;script type="text/javascript"gt; function replaceReg(reg,str){ return str.replace(reg,'[img]$1[/img]') } var reg = /lt;img(#63;:s*w*#63;s*=s*".+#63;")*#63;s*srcs*=s*"(.+#63;)"(#63;:s*w*#63;s*=s*".+#63;")*s*gt;/ig; var str = '我就是传说中的图片了lt;img src="URL"gt;哎。'; document.write(replaceReg(reg,str)+'lt;br /gt;'); lt;/scriptgt; 第二个是替换object代码嵌入的flash代码替换为 针对原文的正则如下: /lt;object[sS]*#63;src=([sS]+#63;)(#63;=s)[sS]*lt;/objectgt;/i 如果是所有的属性都有双引号的话正则也需要修改。 测试如下: lt;script type="text/javascript"gt; function replaceReg(reg,str){ return str.replace(reg,' 给属性添加双引号 来源:请教正则表达式高手 给HTML标签中的属性添加双引号。 lt;a href=xxxgt;改为:lt;a href="xxx"gt; LeXRus的第一个正则如下: /(#63;!lt;w+)(s+w+)=([^gt;"s]+)/ig 第一个括号没看明白,JS应该是不支持。所以我擅自给删掉了,剩下的正则如下: /(s+w+)=([^gt;"s]+)/ig 第一个括号里的s+w+匹配的是属性名。 然后是=,不用转义。 第二个括号里的[^gt;"s]+匹配属性值。不匹配gt;”和空格。这里的引号不用转义。在意思不改变的情况下,稍微改了改,正则如下: /(s+w+)=([^gt;"s]+)/ig 需要注意的是这个正则不匹配=两边有空格的属性,例如href = xxx。相匹配的话就改成: /(s+w+)s*=s*([^gt;"s]+)/ig 代码: (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |