Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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 - Fatal编程技术网

Javascript 如何从字符串中获取维度?

Javascript 如何从字符串中获取维度?,javascript,Javascript,嗨,我是javascript的新手,我正在尝试从字符串中获取维度。代码如下: var str = '1.jpeg (JPEG Image, 1298 × 1600 pixels)'; var index1 = str.indexOf('('), index2 = str.indexOf(')'); str = str.substr(index1+1, (index2-index1-1)); str = str.split('×'); alert(str); 我无法将其输出到1298×1600注

嗨,我是javascript的新手,我正在尝试从字符串中获取维度。代码如下:

var str = '1.jpeg (JPEG Image, 1298 × 1600 pixels)';
var index1 = str.indexOf('('), index2 = str.indexOf(')');
str = str.substr(index1+1, (index2-index1-1));
str = str.split('×');
alert(str);

我无法将其输出到
1298×1600
注意×不是常规的x。这是一个实时版本

使用正则表达式这将是一个简单的任务。类似这样的方法会奏效:

var str = '1.jpeg (JPEG Image, 1298 × 1600 pixels)';
var regex = /\d+ × \d+/;
var result = str.match(regex)[0];
说明:
\d+
将匹配任何数字,
×
将匹配中间部分。将这些组合在一起将匹配您所寻找的结果


注意:这个正则表达式对格式做了两个假设,最大的假设是结果周围总是有空格,而
×
周围的空格总是两边各一个。如果格式可能会改变,请告诉我,因为正则表达式可以调整。代码还假设匹配将得到保证,但我认为这是公平的,因为您的格式看起来相当可靠-当然,只有您知道哪些假设是正确的。

尝试以下方法:

var str = "1.jpeg (JPEG Image, 1298 × 1600 pixels)";
var res = str.split(" ")[3] + "x" + str.split(" ")[5];

这将给你一个真正的“x”字符串的分辨率。如果需要,也可以将x和y分辨率直接用作整数。

尝试使用正则表达式和字符串。匹配方式如下:

var str = '1.jpeg (JPEG Image, 1298 × 1600 pixels)';

var res = str.match(/[0-9]+\s[×]\s[0-9]+/);
如果你不明白这个表达式是如何工作的,就评论一下,我会给出详细的信息


正则表达式似乎是一个不错的选择。这里我使用
match
返回匹配元素的数组:

var regex = /\s(\d+)\s×\s(\d+)\s/
var matches = str.match(regex); // matches[1] = 1298, matches[2] = 1600