前提・実現したいこと
JavaScript
1var link = "<div data-url='http://www.sample.jp/'><title>サンプル</title></div>"; 2 3var content =" 4<div data-url='http://www.sample.jp/'><title>サンプル</title></div>、 5http://www.sample.jp/、 6http://www.sample.jp/";
このcontentについて、data-url='http://www.sample.jp/'以外の
http://www.sample.jp/を変数linkに置換する方法ってありますか?
結果として、
<div data-url='http://www.sample.jp/'><title>サンプル</title></div>、 <div data-url='http://www.sample.jp/'><title>サンプル</title></div>、 <div data-url='http://www.sample.jp/'><title>サンプル</title></div>
となるように置換したいです。
ご教示お願い致します。
試したこと
replaceメソッドと正規表現を使えば、もしかしたらできるかもしれないけど、
書き方がわかりません。
content.replace("ここをどう書けばよいですか?", link);
方針としては、下記のようなことをやればできそうな気がしますが、できません。
(?!~)の指定の方法が間違っているのでしょうか?
content.replace("(?!<div data-url=')http://www.sample.jp/(?!'>)", link);
追記。
contentはそのとき次第でいろいろ変わります。
区切り文字も毎回「、」とは限らず、任意の数の任意の文字になります。
var content =" <div data-url='http://www.sample.jp/'><title>サンプル</title></div>、 http://www.sample.jp/"; だったり、 <div data-url='http://www.sample.jp/'><title>サンプル</title></div>、 http://www.sample.jp/、 http://www.sample.jp/"; だったり、 <div data-url='http://www.sample.jp/'><title>サンプル</title></div>、 http://www.sample.jp/、 http://www.sample.jp/, http://www.sample.jp/"; だったり、 <div data-url='http://www.sample.jp/'><title>サンプル</title></div>、 http://www.sample.jp/、 http://www.sample2.jp/,サンプル文章 http://www.sample.jp/"; だったりします。 これの期待値は、 <div data-url='http://www.sample.jp/'><title>サンプル</title></div>、 <div data-url='http://www.sample.jp/'><title>サンプル</title></div>、 http://www.sample2.jp/,サンプル文章 <div data-url='http://www.sample.jp/'><title>サンプル</title></div>"; です。 URLが付与されたら、linkはそのURLを整形したものを入れています。 http://www.sample.jp/のようなURLが付与されたら、そのURLで var link = "<div data-url='URL'><title>サンプル</title></div>"; を整形。 contentには、URLを整形したものと、そのままのURLが混ざっているので、 <div data-url='URL'><title>サンプル</title></div> <div data-url='URL'><title>サンプル</title></div> URL そのままのURLをlinkの文字に置換したいです。 つまり、整形された<div data-url='URL'><title>サンプル</title></div>を除いて、 URLを置換したいです。
回答3件
あなたの回答
tips
プレビュー