Lorsque j'écris un plugin jQuery j'aime spécifier les options pour les espacements de la manière CSS. J'ai écrit une fonction qui renvoie une chaîne CSS en tant que valeurs dans un objet.analyse des mesures css
5px 10px rendements top: 5px, droite: 10px, en bas: 5px, à gauche: 10px
Maintenant j'utilise souvent les valeurs renvoyées pour faire des calculs et ce ne est pas très agréable d'avoir à extraire l'unité de mesure tous les temps ...
I suck par écrit des expressions régulières quelqu'un pourrait me aider à terminer cette fonction:
this.cssMeasure = function(cssString, separateUnits){
if (cssString){
var values = {}
}else{
return errorMsg
}
var spacing = cssString.split(' ')
var errorMsg = 'please format your css values correctly dude'
if(spacing[4]) {
return errorMsg
} else if (spacing[3]) {
values = {top: spacing[0], right:spacing[1], bottom:spacing[2], left:spacing[3]}
} else if (spacing[2]) {
values = {top: spacing[0], right:spacing[1], bottom:spacing[2], left:spacing[1]}
} else if (spacing[1]) {
values = {top: spacing[0], right:spacing[1], bottom:spacing[0], left:spacing[1]}
} else {
values = {top: spacing[0], right:spacing[0], bottom:spacing[0], left:spacing[0]}
}
if (separateUnits) {
$.each(values, function(i, value){
/*
at this place i need to extract the measuring unit of each value and return them separately
something like top: {value: 10, unit: 'px'}, right: {bla} and so on
*/
})
}
return values
}
si vous avez une idée pour améliorer cette fonction, je suis ouvert à vos commentaires.
Notez que donner trois valeurs (par exemple "10px 5px 7px") est parfaitement valide; la 1ère valeur est pour le haut, la 2ème pour la gauche et la droite, la 3ème pour le bas. – outis
wow bon à savoir, j'ai édité le post. – meo