当前位置: 代码迷 >> JavaScript >> JS正则表达式,轮换字符时忽略URL中的字符
  详细解决方案

JS正则表达式,轮换字符时忽略URL中的字符

热度:106   发布时间:2012-09-06 10:37:01.0
JS正则表达式,替换字符时忽略URL中的字符
var text = "<a href='http://www.baidu.com'>http://www.baidu.com</a>";
var keyword = "www";

输出
<a href='http://www.baidu.com'>http://<b>www</b>.baidu.com</a>

请问这个正则表达式要怎么写?

------解决方案--------------------
JScript code
text.replace(new RegExp('(<a[^>].*>.*)('+keyword+')(.*</a>)'),'$1<b>$2</b>$3')

------解决方案--------------------
<script type="text/javascript">
var text = "<a href='http://www.baidu.com'>http://www.baidu.com</a>";
var keyword = "www";
var pattern = new RegExp('^(<[^>]+>[^<]*)(' + keyword + ')([^<]*<[^>]*>)$');
text = text.replace(pattern, "$1<b>$2</b>$3");
alert(text);
</script>
------解决方案--------------------
JScript code
    var text = "<a href='http://www.baidu.com'>http://www.baidu.com</a>afefeeaaa<A href='http://www.code-design.cn'>http://www.code-design.cn</a>";
    var keyword = "www";
    var rx = /(<a[^>]+>)([^>]+)(<\/a>)/ig
    text = text.replace(rx, function ($0, $1, $2, $3) { return $1 + $2.replace(keyword, '<b>' + keyword + '</b>') + $3; });
    alert(text)