6
votes

Obtenir une partie numérique de l'identifiant

Si j'ai l'élément suivant: xxx

Je peux obtenir l'identifiant comme celui-ci: xxx

mais comment puis-je obtenir juste la partie numérique de cette si, c'est-à-dire 22 ?

EDIT: article est toujours un préfixe.


7 commentaires

Downvote et fermer? Pourquoi? Semble assez clair pour moi.


La plupart des choses sont une question de RTM ... peut-être que cela devrait être fermé parce que tout saigne évident?


@Markus: ah, je vois. Je vais passer et voter pour fermer chaque question de regex sur le site , puis. C'est tout juste une manipulation de chaîne, non? Je parie que je peux casser la solution naïve à ce problème avec un simple changement de données (contraintes cachées du problème).


+1, semble être une question légitime.


@Markus Même si c'est une question facile, c'est toujours une question sur la programmation. Les autres débutants recherchent la réponse utile.


Je suis désolé si cela semble une question évidente, mais pour quelqu'un comme moi sans formation formelle en tant que développeur, j'apprends ces techniques comme elles viennent ...


Pas besoin de vous excuser, de votre question et de vos questions futures comme ça va bien. Si vous vous demandez une question si une question convient ici, jetez un coup d'œil à la FAQ: Stackoverflow.com/faq


5 Réponses :


17
votes
var thenumber22 = $(this).attr('id').match(/(\d+)/)[1]

3 commentaires

Meilleure façon de le faire. De cette façon ne dépend pas de l'article. Vous pouvez changer le texte d'identification à n'importe quoi et que le JS fonctionnera toujours.


+1, mais @ silent1mezzo, il échouerait si le préfixe contenait des chiffres. ( Mode de cueillette NIT OFF )


Vous pouvez utiliser .Match (/ (\ d +) $ /) [1]



6
votes

Si vous avez toujours le préfixe élément code>, vous pouvez

var numeric = +this.id.replace('ITEM','');


5 commentaires

+1 Vous pouvez également le convertir facilement en un numéro avec le + .


@Felix, n'était pas sûr que si le OP le souhaitait vraiment comme un numéro ou simplement cette partie de la chaîne .. ajoutera-le bien pour plus d'informations ..


C'est toujours un objet comme préfixe.


Je n'ai pas besoin de ça comme valeur. Il sera analysé comme un identifiant.


@santa, cool. Utilisez une option qui correspond à vos exigences .. Il suffit de les signaler au cas où vous souhaitiez plus de flexibilité.



0
votes
var whatYouWant = getNo($(this).attr('id'));

function getNo(stringNo)
{
    var parsedNo = "";
    for(var n=0; n<stringNo.length; n++)
    {
        var i = stringNo.substring(n,n+1);
        if(i=="1"||i=="2"||i=="3"||i=="4"||i=="5"||i=="6"||i=="7"||i=="8"||i=="9"||i=="0")
            parsedNo += i;
    }
    return parseInt(parsedNo);
}

11 commentaires

Cela semble être beaucoup plus compliqué que ce qui doit être.


Cela reçoit le prix pour "la plupart des solutions de codage ballées jamais".


Parce que c'est un moyen affreux de le faire.


Parfois, je ne comprends vraiment pas ce site. "Donnez-moi un moyen de faire ça?" - S'il l'a dit: "Donnez-moi le moyen le plus efficace de le faire", alors je peux comprendre voter cette réponse.


Il y a une différence subtile entre "Montrez-moi toutes les voies possibles de le faire" et "montrez-moi des moyens de le faire et d'expliquer les avantages (DIS) de chaque option."


Une erreur a été glissée là-bas aussi ... i == "6" | | i == "7" devrait être i == "6" || i == "7" . Aucun espace entre les deux ||


Je sympathise avec vous Slandau, votre solution est verbeuse mais cela fonctionne. Mais je suppose que dans le visage de multiples réponses, le vote fonctionne pour séparer les réponses efficaces de toutes les réponses possibles.


Je suppose que cela, mais je pense que purement upavant les meilleures réponses atteignent la même idée de la séparation. Je pense que le bowvote devrait être réservé aux réponses qui ne répondent pas à la question ou qui ne fonctionnent pas.


Soyez "juste", des moyens de vote en bas cette réponse n'est pas utile . Une réponse ne peut être pas utile de différentes manières. Mais je suis d'accord avec vous, je résiste normalement des votes en panne pour des questions qui sont vraiment fausses ...


Cette solution est extrêmement utile dans une situation, lorsque vous recevez des paiements par le LOC :)


Ce n'était pas moi qui a fait voté votre réponse. J'apprécie toute entrée. +1 pour corriger l'injustice. :)



0
votes
<div id="ITEM22"></div>

var id = $(this).attr('id');  
var numeric_part = id.replace(/[A-Z]+/, '');  //Output : 22

0 commentaires

0
votes

Cela extrait une partie numérique d'une chaîne à l'aide d'une expression régulière .

var NumericPart = id.match (/ \ d + / /);


0 commentaires