J’essaie d’écrire un extrait de code jQuery qui parsingra un nom d’image contenant la largeur, la hauteur et les extensions, puis assignera ces valeurs à des variables.
Format du nom d’image: DSCN0551-130x130.jpg
(name-widthxheight.extension)
Je veux essayer de tirer notre largeur, la hauteur et l’extension et les assigner à des variables.
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];
En ajoutant l’ancre à la fin, vous pouvez lire l’expression rationnelle de droite à gauche. Et ensuite, après l’extrême gauche -
cela concerne votre structure,. .+
Correspond à tout ce qui rest (quels que soient les caractères).
var g='DSCN0551-130x130.jpg'.match(/([0-9]+)x([0-9]+)\.([az]+)/i) //g[1] = width //g[2] = height //g[3] = ext
ou mieux: si vous voulez seulement trouver la première correspondance, vous pouvez utiliser plutôt regexp.exec (chaîne).
var g=/([0-9]+)x([0-9]+)\.([az]+)/i.exec('DSCN0551-130x130.jpg') //g[1] = width //g[2] = height //g[3] = ext
Utilisez ceci:
Démo en direct: 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
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];