Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式替换为(大部分)字符串内容的问题_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 正则表达式替换为(大部分)字符串内容的问题

Javascript 正则表达式替换为(大部分)字符串内容的问题,javascript,jquery,regex,Javascript,Jquery,Regex,我试图用HREF包装所有出现的IP地址,这样我就可以做一些事情(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 new

我试图用HREF包装所有出现的IP地址,这样我就可以做一些事情(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);
var theIps=newregexp('^((25[0-5]| 2[0-4][0-9]| 1[0-9]{2}}{2,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处理=新车身。更换(theIps,);
jQuery('#ELEMENT').html(已处理);

提前感谢您的帮助…

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

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对象时,必须将反斜杠加倍。如果正则表达式是常量(即,您没有动态地构建它),那么使用“本机”语法就更容易了。

对您的正则表达式使用正则表达式语法:

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对象时,必须将反斜杠加倍。如果正则表达式是常量(即,您没有动态构建它),那么使用“本机”语法就更容易了。

感谢您的及时回复——以及修复我的帖子:-)Grrr enter提交……现在我知道了。所以我做了你建议的更改(firefox在我删除“新”之前一直在抱怨,现在已经解决了),但我仍然得到了与以前相同的输出,没有发生替换。replace没有像我想的那样工作,或者在这段代码中有什么可以解释的吗?再次感谢!好吧,正则表达式本身似乎是有效的,至少基本上是这样。你确定你有一个带有“id”值“ELEMENT”的容器吗?您是否尝试过使用jQuery('body')?是的,我甚至将相关内容抽象到它自己的文件中,只是为了让它工作,并提醒结果,而不是试图将其返回到DIV中——仍然没有发生替换。在这一点上,我认为我缺少一些非常基本的东西,但只要我一直在寻找解决方案,我就会一直难以捉摸。哦,duhh-很抱歉,但我刚刚看到了问题。在正则表达式周围有
^
$
锚定,因此只有当整个字符串是IP地址时,它才会匹配!只要去掉这些,并确保在正则表达式的末尾有
g
标志,它就可以工作了。感谢您的及时回复——以及修复我的帖子:-)Grrr enter提交……现在我知道了。所以我做了你建议的更改(firefox在我删除“新”之前一直在抱怨,现在已经解决了),但我仍然得到了与以前相同的输出,没有发生替换。replace没有像我想的那样工作,或者在这段代码中有什么可以解释的吗?再次感谢!好吧,正则表达式本身似乎是有效的,至少基本上是这样。你确定你有一个带有“id”值“ELEMENT”的容器吗?您是否尝试过使用jQuery('body')?是的,我甚至将相关内容抽象到它自己的文件中,只是为了让它工作,并提醒结果,而不是试图将其返回到DIV中——仍然没有发生替换。在这一点上,我认为我缺少一些非常基本的东西,但只要我一直在寻找解决方案,我就会一直难以捉摸。哦,duhh-很抱歉,但我刚刚看到了问题。在正则表达式周围有
^
$
锚定,因此只有当整个字符串是IP地址时,它才会匹配!只要去掉这些,并确保在正则表达式的末尾有
g
标志,它就可以工作了。