10

背景画像の URL を含む css ファイルがあります。

.alert-01 {
  background: url('img/alert-01.jpg') center no-repeat;
}
.alert-02 {
  background: url('img/alert-02.jpg') center no-repeat;
}
.alert-03 {
  background: url('img/alert-03.jpg') center no-repeat;
}
.alert-04 {
  background: url('img/alert-04.jpg') center no-repeat;
}

そして、URL を削除する正規表現を書きたいと思います。

したがって、最初は次のようになります。

url('img/alert-01.jpg')
url('img/alert-02.jpg')
url('img/alert-03.jpg')
url('img/alert-04.jpg')

次に、ビットを置き換えて、それらをhtml<img>ブロックに変換できます。

最後の部分は問題ありませんが、私の正規表現スキルは少しさびています。

私の最近の試みはこれでした:/^url\(.*?g\)$/ig

何か助けはありますか?

ところで、私はこれをすべてjavascriptで行っていましたが、言語は正規表現に実際には影響しません。

前もって感謝します!

また、ファイルが常にjpgであり、jpeg、pngなどである可能性があることを保証することはできません。また、バックグラウンドへの引数は常に同じです。したがって、なぜURL部分だけを抽出したいのですか。

4

6 に答える 6

7

試す:

/url\(.*?g'\)/ig

あなたの間違いは、入力文字列の最初と最後に固定する正規表現に^andを含めていました。$そして、引用を許可するのを忘れました。

于 2013-10-22T12:40:33.853 に答える
3

私はグーグルからこの質問に来ました。古いものですが、data:image/* URLについて議論している答えはありません。これは、httpまたは相対URLのみに一致する別のGoogleの結果で見つけたものです。

/url\((?!['"]?(?:data):)['"]?([^'"\)]*)['"]?\)/g

これが検索エンジンから来る他の人々に役立つことを願っています.

于 2016-08-12T15:49:04.470 に答える
3
/^url\((['"]?)(.*)\1\)$/

jQuery を使用:

var bg = $('.my_element').css('background-image'); // or pure js like element.style.backgroundImage
    bg = /^url\((['"]?)(.*)\1\)$/.exec(bg);
    bg = bg ? bg[2] : false;
if(bg) {
// Do something
}

Chrome / Firefox とのクロス

http://jsfiddle.net/KFWWv/

于 2013-10-22T12:54:16.947 に答える
2

次の正規表現を使用します。

/\burl\([^)]+\)/gi

アンカー (^および$) を使用する必要はありません。文字列入力全体に対する一致が制限され、失敗するためです。<img>タグを作成するときに簡単に使用できるように(そして部分文字列を回避できるように)画像パスを個別にキャプチャするには、次を使用します。

/\burl\('([^']+)'\)/gi

img/alert-xx.jpgこれにより、グループ 1がキャプチャされます。

于 2013-10-22T12:40:44.937 に答える
0

あなたは決算の見積もりを考慮していませんでした

url\(.*g\'\)

とアンカー

于 2013-10-22T12:40:50.170 に答える