Javascript 如何从字符串中获取维度?
嗨,我是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注
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