我想写一个jQuery代码片段,它将解析包含宽度,高度和扩展名的图像名称并将这些值分配给变量。jQuery和RegEX来解析图像名称
图片名称格式:DSCN0551-130x130.jpg
(名称widthxheight.extension)
我想尝试和拉我们的宽度,高度和延伸,并将其分配给变量。
我想写一个jQuery代码片段,它将解析包含宽度,高度和扩展名的图像名称并将这些值分配给变量。jQuery和RegEX来解析图像名称
图片名称格式:DSCN0551-130x130.jpg
(名称widthxheight.extension)
我想尝试和拉我们的宽度,高度和延伸,并将其分配给变量。
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 g='DSCN0551-130x130.jpg'.match(/([0-9]+)x([0-9]+)\.([a-z]+)/i)
//g[1] = width
//g[2] = height
//g[3] = ext
或更好: 如果你只想要第一个匹配找到,你可能需要使用regexp.exec(String)来代替。
var g=/([0-9]+)x([0-9]+)\.([a-z]+)/i.exec('DSCN0551-130x130.jpg')
//g[1] = width
//g[2] = height
//g[3] = ext
使用此:
现场演示: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
如果文件名包含短划线和x,则可能会中断。 –
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];
http://www.regular-expressions.info/是一个良好的开端。 –