1

こんにちは

ユーザーが埋め込みコードを貼り付けることができるアプリケーションがあります。表示中に、埋め込みコードの高さと幅を選択した固定値に変更したいと考えています。埋め込みコードで幅と高さを求める正規表現を教えてください。幅="300" 高さ="500". これらの 2 つの値を完全に取得して、それらを置き換えることができるようにしたいと考えています。

ありがとう

4

3 に答える 3

1

正規表現は、HTMLの解析が根本的に苦手です(理由については、正規表現を使用してXMLとHTMLを解析するのが難しい理由の例をいくつか挙げてください)。必要なのはHTMLパーサーです。お気に入りのパーサーを使用してHTMLを解析する例を提供できますか?を参照してください。たとえば、さまざまなパーサーを使用します。

JavaScriptに関連する2つの答え、jQueryDOMに興味があるかもしれません。

于 2009-05-26T05:00:56.843 に答える
1

次の例では、順序、使用される引用符、スペースを入れるかどうかを考慮しています。

単純な置換:

embeddedString = embeddedString.replace(/(width\s*=\s*["'])[0-9]+(["'])/ig, $1 + yourWidth + $2);
embeddedString = embeddedString.replace(/(height\s*=\s*["'])[0-9]+(["'])/ig, $1 + yourHeight + $2);

または、幅を変換するには:

embeddedString = embeddedString.replace(/width\s*=\s*["']["']/ig, function($0, $1)
{
    return $1 * 2;
});

実際にすべてを削除したいが、値を使用する場合:

var originalWidth;
var originalHeight;
embeddedString = embeddedString.replace(/(?:width|height)\s*=\s*["']([0-9]+)["']\s*(?:width|height)\s*=\s*["']([0-9]+)["']/ig, function($0, $1, $2, $3, $4)
{
    // $0 = original string
    // $1 = either 'width' or 'height'
    // $2 = the value of width or height, depending on above
    // $3 = either 'width' or 'height'
    // $4 = the value of width or height, depending on above
    // here you might want to set another value, eg:
    originalWidth = $2;
    return "";
});
于 2009-05-26T04:23:28.137 に答える
0

これはそれを行います:

width="(.*?)" height="(.*?)"

1 番目と 2 番目の値を取得します。どの言語を使用していますか? 実装は異なる場合があります。

PHP の場合:


     $pattern = '/width="(.*?)" height="(.*?)"/';
     $subject = 'width="500" height="300"';

     preg_match($pattern, $subject, $matches);

     print_r($matches);

于 2009-05-26T04:10:07.667 に答える