この jquery ステートメントは domain.com を検索し、URL の末尾に ?parameter を追加します。?parameter が既に追加されている場合は追加されません。
問題: 私の現在の jquery は、domain.com ではなくすべての URL を変更します。これは、私が使用したい正規表現ステートメントであり、動作することがテストされています。ただし、実装時には何も追加されません。どんな助けでも大歓迎です!
使用したい正規表現:
\b(https?://)?([a-z0-9-]+\.)*domain\.com(/[^\s]*)?
便宜上JSFiddle
変更するコード
<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"><a title="Link to test domain" href="http://www.domain.com">Link to google</a>
<a href="http://www.google.com/directory/subdirectory/index.html">This is another link</a>
<a href="http://domain.com/directory/index.html">This is a 3rd link</a>
<a href="http://www.domain.com/subdir?parameter">this url already has parameters</a></textarea></div>
現在のjqueryステートメント
var url = 'www.domain.com';
var append = '?parameter';
$(".wp-editor-area").each(function() {
$(this).text(urlify($(this).text()));
});
function urlify(text) {
var urlRegex = /(\b(https?|ftp|file):\/\/[www.domain.com][-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
return text.replace(urlRegex, function(url) {
// if the url does not contain append, concat append to the URL
if (url.indexOf(append) == -1) {
return url + append;
}
return url;
});
}
電流出力
<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>