正则表达式替换(主要)字符串内容的问题

时间:2010-10-14 20:48:26

标签: javascript jquery regex

我正在尝试使用HREF包装所有出现的IP地址,以便我可以使用Do Stuff(tm)。

我通过几个验证器运行正则表达式,它按预期匹配模式。因此,我认为我的问题在于实现,但我看不出正确的路径。任何人都可以帮忙吗?

这是正则表达式和相关代码:

var theIps = new RegExp('^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$','g');  
var newBody = jQuery('#ELEMENT').html();  
var processed = newBody.replace(theIps, '<a class="ipPopup" href="javascript:void(0)" rel="10.5.1.2"    onclick="addToWatchlist(this)">TESTING REGEX</a>');  
jQuery('#ELEMENT').html(processed);

提前感谢您的任何帮助......

1 个答案:

答案 0 :(得分:1)

为正则表达式使用正则表达式语法:

var theIps = /^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$/g;  

从字符串构建RegExp对象时,必须将反斜杠加倍。如果正则表达式是常量(即,您没有动态构建它),那么使用“本机”语法会更容易。