我正在尝试使用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);
提前感谢您的任何帮助......
答案 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对象时,必须将反斜杠加倍。如果正则表达式是常量(即,您没有动态构建它),那么使用“本机”语法会更容易。