Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.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 regex/jquery在div中查找域(url)并附加参数_Javascript_Jquery_Regex - Fatal编程技术网

Javascript regex/jquery在div中查找域(url)并附加参数

Javascript regex/jquery在div中查找域(url)并附加参数,javascript,jquery,regex,Javascript,Jquery,Regex,此jquery语句将查找domain.com并将?参数附加到URL的末尾。如果已添加?参数,则不会追加 问题是:我当前的jquery修改所有URL,而不是domain.com。下面是我想使用的regex语句,它经过测试可以正常工作。但是,在实现时,不会附加任何内容。非常感谢您的帮助 我想使用正则表达式: \b(https?://)?([a-z0-9-]+\.)*domain\.com(/[^\s]*)? 为了方便 要修改的代码 <div id="wp-content-editor-co

此jquery语句将查找domain.com并将?参数附加到URL的末尾。如果已添加?参数,则不会追加

问题是:我当前的jquery修改所有URL,而不是domain.com。下面是我想使用的regex语句,它经过测试可以正常工作。但是,在实现时,不会附加任何内容。非常感谢您的帮助

我想使用正则表达式:

\b(https?://)?([a-z0-9-]+\.)*domain\.com(/[^\s]*)?

为了方便

要修改的代码

<div id="wp-content-editor-container" class="wp-editor-container"><textarea class="wp-editor-area" rows="10" tabindex="1" cols="40" name="content" id="content">&lt;a title="Link to test domain" href="http://www.domain.com"&gt;Link to google&lt;/a&gt;
&lt;a href="http://www.google.com/directory/subdirectory/index.html"&gt;This is another link&lt;/a&gt;
&lt;a href="http://domain.com/directory/index.html"&gt;This is a 3rd link&lt;/a&gt;

&lt;a href="http://www.domain.com/subdir?parameter"&gt;this url already has parameters&lt;/a&gt;</textarea></div>
电流输出

    <a title="Link to test domain" href="http://www.domain.com?parameter">Link to google</a>
<a href="http://www.google.com/directory/subdirectory/index.html?parameter">This is another link</a>
<a href="http://domain.com/directory/index.html?parameter">This is a 3rd link</a>

测试此代码-它应该是您需要的(或至少是起点)>>


Resume:在您当前的输出中,第三行可以吗?输出中的第三行用于测试重复的?参数是否不再追加。正则表达式工作正常。然而,它并没有附加在我的上下文中。我在这里测试了它,没有结果。我在我的上下文中测试了代码,没有结果。我看了一下正则表达式,它没有通过我的测试。我可能测试错了。我对regex很陌生,谢谢!非常非常接近……它在JSFIDLE测试中工作……但是,当实际包装在javascript中用作bookmarklet时(预期用途)。它没有附加任何内容。但是,我没有收到错误。bookmarklet将修改div(wp编辑器区域)中的代码,这是wordpress中的WYSIWIG编辑界面。我在OG问题中的代码做到了这一点,但更改了所有URL。我认为这与函数的调用方式有关。@user1512806-如果它与JSFIDLE一起工作,那么就可以了。当我检查你的小提琴时,有太多的语法和逻辑错误,当你做了一些修改后的复制/粘贴时,你就不走运了,这一点我并不感到惊讶。我的答案是一个正确的解决方案,而不是接近或非常接近。你只需要检查你的代码是否有错误…它确实有效!firefox中的多个开发扩展导致它无法运行javascript。非常感谢。我道歉。
    <a title="Link to test domain" href="http://www.domain.com?parameter">Link to google</a>
<a href="http://www.google.com/directory/subdirectory/index.html?parameter">This is another link</a>
<a href="http://domain.com/directory/index.html?parameter">This is a 3rd link</a>
function urlify(text) {
  var append = '?parameter';
  text = text.replace(/("(?:(?:https?|ftp|file):\/\/)?(?:www.|)domain.com(?:\/[-a-z\d_.]+)*)(\?[^"]*|)(")/ig,
    function(m, m1, m2, m3) {
      return ((m1.length != 0) && (m2.length == 0)) ? m1 + append + m3 : m;
    });
  return text;
}

$(".wp-editor-area").each(function() {
  this.innerHTML = urlify(this.innerHTML);
});