jQuery&;要解析图像名称的正则表达式

jQuery&;要解析图像名称的正则表达式,jquery,regex,Jquery,Regex,我试图编写一段jQuery代码,它将解析包含宽度、高度和扩展名的图像名称,并将这些值分配给变量 var g='DSCN0551-130x130.jpg'.match(/([0-9]+)x([0-9]+)\.([a-z]+)/i) //g[1] = width //g[2] = height //g[3] = ext 图像名称格式:DSCN0551-130x130.jpg(名称宽度xheight.extension) 我想试着把我们的函数拉到宽度、高度和扩展上,并把它们分配给变量 var g='

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

var g='DSCN0551-130x130.jpg'.match(/([0-9]+)x([0-9]+)\.([a-z]+)/i)
//g[1] = width
//g[2] = height
//g[3] = ext
图像名称格式:
DSCN0551-130x130.jpg
(名称宽度xheight.extension)

我想试着把我们的函数拉到宽度、高度和扩展上,并把它们分配给变量

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(字符串)


通过在末尾添加锚点,基本上可以从右向左读取正则表达式。然后在与您的结构相关的最左边的
-
之后,
+
匹配剩下的任何字符(无论是什么字符)。

使用以下命令:

现场演示:


是一个很好的开始。如果文件名包含破折号和x,则可能会中断。
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];
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
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];