JavaScript中常用的正则表达式日常整理(全)(9)

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动画

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjppzs.html