jQuery & RegEX pour parsingr le nom de l’image

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];