javaScript正则表达式获取连接文本。例如代码:<a href="#>文本内容</a>,只保存链接的文本内容,标签信息删掉。
前面写过一个匹配链接的正则:
/<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://www.sharejs.com" title="sharejs">分享javaScript</a>';
document.write(anchorText(str));
</script>



