Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于在嵌入代码中更改高度和宽度值的正则表达式_Javascript_Regex_Embed - Fatal编程技术网

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

Javascript 用于在嵌入代码中更改高度和宽度值的正则表达式,javascript,regex,embed,Javascript,Regex,Embed,嗨 我有一个应用程序,用户可以在其中粘贴嵌入代码。在显示时,我想将嵌入代码的高度和宽度更改为我选择的固定值。你能告诉我在嵌入代码中找到宽度和高度的正则表达式吗。宽度=“300”高度=“500”。我希望能够完全获得这两个值,以便替换它们 谢谢这一个可以: width="(.*?)" height="(.*?)" 并获取第一个和第二个值。你用什么语言?实现可能会有所不同 在PHP中: $pattern = '/width="(.*?)" height="(.*?)"/'; $

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

谢谢

这一个可以:

width="(.*?)" height="(.*?)"
并获取第一个和第二个值。你用什么语言?实现可能会有所不同

在PHP中:


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

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

     print_r($matches);


下面的例子考虑了顺序、使用了什么报价以及人们是否在空格中加了空格

直接替换:

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 "";
});

正则表达式根本不擅长解析HTML(请参阅原因)。您需要的是一个HTML解析器。有关使用各种解析器的示例,请参见


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

我想用JavaScript编写它,但不确定JavaScript,但是如果您能阅读上面的PHP代码,您可以使用这里的信息来翻译它:谢谢Luke,但当我使用下面的代码时:function change(){var embeddedString=document.getElementById(“Text1”).value;embeddedString=embeddedString.replace('/(width\s*=\s*[\“])[0-9]+([\“])/ig',width=“500”);document.getElementById(“Text2”).value=embeddedString;}它不替换任何值。我正在用javascript编写代码。我做错什么了吗?。请更正它。嗨,mini,不要在正则表达式周围加引号,因为//ig语法是编译正则表达式“+1”的一种特殊语法,用于提及适当解析器的使用。但是,是否可以在不自动加载外部资源的情况下使用jQuery/DOM?@Gumbo DOM是web浏览器的一部分,因此它应该已经在等待您了。只是它们会将代码粘贴进来,这样浏览器就不会对DOM进行解释