function replaceReg(reg,str){ return str.replace(reg,function(m){return arr[m];}) } arr=new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"); var reg = /\d/g; var str = '13889294444'; var str2 = '12889293333'; var str3 = '23445567'; document.write(replaceReg(reg,str)+'<br />'); document.write(replaceReg(reg,str2)+'<br />'); document.write(replaceReg(reg,str3)+'<br />');
替换文本中的URL为链接
来源:求一链接替换正则
将一个用户输入的一段文字中的url替换成可以点击的link地址。例如:可以替换成 [url][/url]
或<a href="">. blueidea.com</a>.
这个正则的关键就在于匹配链接,匹配之后,在两边加上a标签和属性不是问题。
/http:\/\/[\w-]*(\.[\w-]*)+/ig 首先匹配。
[\w-]*是可能的www和bbs等。
\.[\w-]*匹配.xxx形式,至少有一个。
测试代码如下:
<script type="text/javascript"> function replaceReg(reg,str){ return str.replace(reg,function(m){return '<a href="'https://www.jb51.net/article/+m+'">'https://www.jb51.net/article/+m+'</a>';}) } var reg = /http:\/\/[\w-]*(\.[\w-]*)+/ig; var str = '将一个用户输入的一段文字中的url替换成可以点击的link地址。\
is very good!!最后在看看带.cn的:呵呵。';
document.write(replaceReg(reg,str)+'<br />');
</script>
从HTML代码段删除指定标签极其内容
来源:关于正则的问题
在一段代码中去除<script ...... /script>, <head>...</head>,<%.....%>等代码块
隆的正则:
/<(script|meta|%)[\s\S]*?\/(script|meta|%)>/ 试了一下,匹配如下文本正常:
<script type="text/javascript">
我是要被删除的脚本
</script>
哎。就剩下我了。 但是,如果使用类似的正则:
/<(script|head|%)[\s\S]*?\/(script|head|%)>/ig 匹配有嵌套的标签:
<head>
<script type="text/javascript">
我是要被删除的脚本
</script>
</head>
哎。就剩下我了。 实际匹配的内容是:
<head>
<script type="text/javascript">
我是要被删除的脚本
</script>
这是因为[\s\S]*?里的非贪婪造成的。可以使用JavaScript正则里的反向引用来解决这个问题,如果起始标签匹配了head,那么结束标签也必须是head。
最后的正则如下:
/<(script|head|%)[\s\S]*?\/\1>/ig 用正则给文本分段
来源:怎样用正则分段落
原代码:[title]标题一[/title]内容一232323sdfga [title]标题二[/title]内容二2232323 [title]标题三[/title]内容三2232323
要把文本分段成如下格式:
一、[title]标题一[/title]内容一232323sdfga
二、[title]标题二[/title]内容二2232323
三、[title]标题三[/title]内容三2232323
只要用正则匹配title就可以了,所以正则比较简单
/\[title\]/ig 至于开始的的汉字序号,只要一个数组就解决了,最终代码如下:
<script type="text/javascript"> function replaceReg(reg,str){ var mark =0; return str.replace(reg,function(m){mark++;return '<br />'+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)+'<br />'); </script>
转换源代码中的标签
来源:一个正则上的问题
将代码中的HTML标签img转换为[img]url[/img]。
/<img(?:\s*\w*?\s*=\s*".+?")*?\s*src\s*=\s*"(.+?)"(?:\s*\w*?\s*=\s*".+?")*\s*>/ig
这段正则和匹配链接标签的正则基本一样,修改如下,标签名img,没有结束标签而是>结束。
测试代码如下:
<script type="text/javascript"> function replaceReg(reg,str){ return str.replace(reg,'[img]$1[/img]') } var reg = /<img(?:\s*\w*?\s*=\s*".+?")*?\s*src\s*=\s*"(.+?)"(?:\s*\w*?\s*=\s*".+?")*\s*>/ig; var str = '我就是传说中的图片了<img src="https://www.jb51.net/article/URL">哎。'; document.write(replaceReg(reg,str)+'<br />'); </script>
第二个是替换object代码嵌入的flash代码替换为
Flash动画
。针对原文的正则如下:
/<object[\s\S]*?src=([\s\S]+?)(?=\s)[\s\S]*<\/object>/i 如果是所有的属性都有双引号的话正则也需要修改。
测试如下:
<script type="text/javascript"> function replaceReg(reg,str){ return str.replace(reg,'
Flash动画