用于在嵌入代码中更改高度和宽度值的正则表达式

时间:2009-05-26 04:00:11

标签: javascript regex embed

HI

我有一个应用程序,用户可以粘贴他们的嵌入代码。显示我想将嵌入代码的高度和宽度更改为我选择的固定值。你能告诉我正则表达式来找到嵌入代码中的宽度和高度。 width =“300”height =“500”。我希望能够完全获得这两个值,以便我可以替换它们。

由于

3 个答案:

答案 0 :(得分: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 "";
});

答案 1 :(得分:1)

正则表达式在解析HTML方面根本不好(请参阅Can you provide some examples of why it is hard to parse XML and HTML with a regex?了解原因)。你需要的是一个HTML解析器。有关使用各种解析器的示例,请参阅Can you provide an example of parsing HTML with your favorite parser?

您可能会对与JavaScript相关的两个答案感兴趣:jQueryDOM

答案 2 :(得分:0)

这个做到了:

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

并获取第一个和第二个值。你用的是什么语言?实施可能会有所不同。

在PHP中:


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

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

     print_r($matches);