嗨,我是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。这是一个实时版http://jsfiddle.net/s5b4E/
答案 0 :(得分:0)
使用Regex这将是一项简单的任务。这样的事情会起作用:
var str = '1.jpeg (JPEG Image, 1298 × 1600 pixels)';
var regex = /\d+ × \d+/;
var result = str.match(regex)[0];
说明:\d+
将匹配任何数字, ×
将匹配中间部分。将这些组合在一起将匹配您正在寻找的结果。
注意:这个正则表达式对格式做了几个假设,最大的假设就是结果周围始终存在空白,而×
周围的空格总是一个每侧。如果格式可能会改变,那么请告诉我,因为可以调整正则表达式。该代码还假设匹配将得到保证,但我认为这是公平的,因为您的格式看起来相当可靠 - 当然,只有您知道哪些假设是可以的。
答案 1 :(得分:0)
试试这个:
var str = "1.jpeg (JPEG Image, 1298 × 1600 pixels)";
var res = str.split(" ")[3] + "x" + str.split(" ")[5];
这会给你分辨率,就像字符串一样有一个真正的“x”。如果需要,您也可以将x和y分辨率直接用作整数。
答案 2 :(得分:0)
尝试使用正则表达式和String.match,如下所示:
var str = '1.jpeg (JPEG Image, 1298 × 1600 pixels)';
var res = str.match(/[0-9]+\s[×]\s[0-9]+/);
如果您不理解这个表达式的工作方式,请发表评论,我将提供详细信息。
答案 3 :(得分:0)
正则表达式似乎是一个很好的方法。在这里,我使用match
返回匹配元素的数组:
var regex = /\s(\d+)\s×\s(\d+)\s/
var matches = str.match(regex); // matches[1] = 1298, matches[2] = 1600