こんにちは
ユーザーが埋め込みコードを貼り付けることができるアプリケーションがあります。表示中に、埋め込みコードの高さと幅を選択した固定値に変更したいと考えています。埋め込みコードで幅と高さを求める正規表現を教えてください。幅="300" 高さ="500". これらの 2 つの値を完全に取得して、それらを置き換えることができるようにしたいと考えています。
ありがとう
こんにちは
ユーザーが埋め込みコードを貼り付けることができるアプリケーションがあります。表示中に、埋め込みコードの高さと幅を選択した固定値に変更したいと考えています。埋め込みコードで幅と高さを求める正規表現を教えてください。幅="300" 高さ="500". これらの 2 つの値を完全に取得して、それらを置き換えることができるようにしたいと考えています。
ありがとう
正規表現は、HTMLの解析が根本的に苦手です(理由については、正規表現を使用してXMLとHTMLを解析するのが難しい理由の例をいくつか挙げてください)。必要なのはHTMLパーサーです。お気に入りのパーサーを使用してHTMLを解析する例を提供できますか?を参照してください。たとえば、さまざまなパーサーを使用します。
次の例では、順序、使用される引用符、スペースを入れるかどうかを考慮しています。
単純な置換:
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 "";
});
これはそれを行います:
width="(.*?)" height="(.*?)"
1 番目と 2 番目の値を取得します。どの言語を使用していますか? 実装は異なる場合があります。
PHP の場合:
$pattern = '/width="(.*?)" height="(.*?)"/';
$subject = 'width="500" height="300"';
preg_match($pattern, $subject, $matches);
print_r($matches);