b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

js 正则表达式语法大全_常用的正则表达式大全_正则表达式大全(12)

电脑杂谈  发布时间:2017-03-06 07:00:33  来源:网络整理

前面写过一个匹配链接的正则:

/<a\s(\s*\w*?=".+?")*(\s*href=".+?")(\s*\w*?=".+?")*\s*>[\s\S]*?<\/a>/ 不过我们需要捕获的是文字内容,所以需要做一定的修改。第一步就是在所有的括号内都加上?:表示不捕获。第二步就是再多加一个括号放在[\s\S]*?两侧,这样就可以捕获到链接的文字内容了。最后正则如下:

/<a\s(?:\s*\w*?\s*=\s*".+?")*(?:\s*href\s*=\s*".+?")(?:\s*\w*?\s*=\s*".+?")*\s*>([\s\S]*?)<\/a>/ 测试代码如下:

<script type="text/javascript">

function anchorText(str){

var reg =/<a\s(?:\s*\w*?\s*=\s*".+?")*(?:\s*href\s*=\s*".+?")(?:\s*\w*?\s*=\s*".+?")*\s*>

([\s\S]*?)<\/a>/;

str = str.replace(reg,'$1');

return str;

}

var str = '<a id = "test" href="http://bbs.blueidea.com" title="无敌">经典论坛</a>';

document.write(anchorText(str));

</script> 正则判断标签是否闭合

例如:<img xxx=”xxx” 就是没有闭合的标签;

<p>p的内容,同样也是没闭合的标签。

从简单的正则开始,先匹配起始标签

/<[a-z]+/i 再加上若干属性:

/<[a-z]+(\s*\w*?\s*=\s*".+?")*/i 下面就到关键点了,标签的闭合。标签可能有两种方式闭合,<img xxx=”xxx” />

或者是<p>xxx </p>。

(\s*\/>)

匹配img类的结束,即/>。

(\s*?>[\s\S]*?<\/\1>)

匹配\p类标签的结束标签。>是其实标签末尾,之后是标签内容若干个任意字符,最后的<\/\1>就是结束标签了。

加上一个或就可以解决了,最后的完整正则表达式:

整个正则:

/<([a-z]+)(\s*\w*?\s*=\s*".+?")*(\s*?>[\s\S]*?<\/\1>|\s*\/>)/i 拿这个正则,只要匹配到了就表示闭合,没匹配到则没有闭合。不过没有考虑相同标签嵌套的问题,例如

<div>aaaaaa<div>test</div>

也被判断为合格,可以通过把最后的匹配p类结束标签写成子正则表达式,并且更改为非贪心,然后在匹配结果中检查是否成对。正则如下:

/<([a-z]+)(\s*\w*?\s*=\s*".+?")*(\s*?>[\s\S]*?(<\/\1>)+|\s*\/>)/i 用正则获得指定标签的内容

有如下代码:

<channel>

<title>蓝色理想</title>

</channel>

<item>

<title>界面设计测试规范</title>


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-36054-12.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...