jQuery& RegEX解析图像名称

时间:2012-09-27 17:26:48

标签: jquery regex

我正在尝试编写一个jQuery代码片段,它将解析包含宽度,高度和扩展名的图像名称,并将这些值分配给变量。

图像名称格式:DSCN0551-130x130.jpg(name-widthxheight.extension)

我想尝试拉动宽度,高度和扩展名,并将它们分配给变量。

4 个答案:

答案 0 :(得分:1)

var str = 'DSCN0551-130x130.jpg';
var matches = str.match(/(.+)-(\d+)x(\d+)\.(\w+)$/);
var name = matches[1];
var width = matches[2];
var height = matches[3];
var extension = matches[4];

通过将锚添加到结尾,您基本上可以从右到左阅读正则表达式。然后在与您的结构相关的最左侧-之后,.+匹配任何剩余的内容(无论是什么字符)。

答案 1 :(得分:0)

var g='DSCN0551-130x130.jpg'.match(/([0-9]+)x([0-9]+)\.([a-z]+)/i)
//g[1] = width
//g[2] = height
//g[3] = ext

或更好: 如果您只想找到第一个匹配项,则可能需要使用regexp.exec(字符串)。

var g=/([0-9]+)x([0-9]+)\.([a-z]+)/i.exec('DSCN0551-130x130.jpg')
//g[1] = width
//g[2] = height
//g[3] = ext

答案 2 :(得分:0)

使用此功能:

现场演示: http://jsfiddle.net/oscarj24/dL89D/1/

var imgName = "DSCN0551-130x130.jpg";
var args = imgName.match(/(.*)-(.*)x(.*)\.(.*)/).slice(1);

alert("name: " + args[0] + //name: DSCN0551
      " width: " + args[1] + //width: 130
      " height: " + args[2] + //height: 130
      " extension: " + args[3]);​ //extension: jpg

答案 3 :(得分:0)

var img = "DSCN0-551-130x130.jpg";

var props = img.split(/-(\d+)x(\d+)\./);

var name = props[0];
var width = props[1];
var height = props[2];
var extension = props[3];