1
votes

Remplacer Répétition de chaîne par un chiffre après la virgule de deux chiffres

J'utilise des tables de données, après avoir cliqué sur le bouton de pagination, la somme s'ajoute. Aide appréciée. Merci d'avance Chaque fois que je clique sur le bouton, le même chiffre s'ajoute. comme déjà présent. Je veux par exemple, si c'est 23.2323.23, je veux garder 23.23 et supprimer après cela

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label>Total amount:23.2323.233</label>
<button id=btn>Click</button>
$("#btn").click(function() {
  $("label").text($("label").text().replace(/[0-9]{2}\.[0-9][0-9]$/g, ''));
  $("label").append("55")
});


4 commentaires

De quelle chaîne parlez-vous?


quelle est cette chaîne et pourquoi voulez-vous la supprimer?


Assez déroutant, vous ajoutez toujours «55» à chaque fois que vous cliquez sur le bouton. Que voulez-vous exactement remplacer? Est-ce le nombre de décimales ou de quelle chaîne vous parlez?


Supprimé le «55» et remplacez-le de votre somme variable afin qu'il se mette à jour. Ou pour le rendre plus clair, placez tout votre code.


4 Réponses :


1
votes

essayez ceci

parseFloat('23.2323.233').toFixed(2)


1 commentaires

Cela ne supprimerait pas la chaîne mais la transformerait en 23.23



0
votes

(Je ne suis pas très clair sur votre question.) si vous souhaitez supprimer la chaîne de l'étiquette, procédez comme suit

$("label").empty().append("55")


0 commentaires

1
votes

Jetons d'abord un coup d'œil à votre essai. Vous avez utilisé /[0-9ITED{2}\. cela signifie deux chiffres suivis d'un point suivi de deux chiffres ( $ signifie qu'il doit se terminer par lui. par exemple, 23.23) ce qui n'est certainement pas le modèle que vous recherchez.

Le modèle que vous êtes la recherche est digits.digits.digits.digits ...

si vous l'exprimez avec une expression régulière, digits (.digits) +, cela conduit à / [0-9] + (\ . [0-9] +) +

Le code final devrait donc être:

$("label").text($("label").text().replace(/[0-9]+(\.[0-9]+)+/g, $("label").text().match(/([0-9]+)\.[0-9]{2}/)[0]));

Modifier: strong >

$("label").text($("label").text().replace(/[0-9]+(\.[0-9]+)+/g, ''));


7 commentaires

J'ai essayé ceci et cela fonctionne mais le problème est: il supprime le chiffre avant la décimale. Comme 1250.33 ira à 1250


si vous ne voulez pas supprimer le chiffre avant la décimale, c'est facile. utilisez simplement /(\.[0-9ITED+)+/g puis


je veux supprimer tous les chiffres après 2 chiffres décimaux


par exemple, si c'est 23.2323.23, vous voulez garder 23.23 et supprimer après cela?


veuillez ajouter le paragraphe edit dans ma réponse. veuillez vérifier si cela fonctionne pour vous.


à mon avis, si vous supprimez tout avant d'ajouter de la première fois, ce problème ne se produira jamais


continuons cette discussion dans le chat .



1
votes

Je pense que vous souhaitez supprimer complètement la valeur numérique précédente indiquée dans l'étiquette avant d'ajouter une nouvelle valeur.

Vous souhaitez donc conserver le Montant total: uniquement. Ajoutez ensuite la valeur que vous avez obtenue à partir de DataTable après la pagination ...

Qu'en est-il du .split () alors?
il crée un tableau basé sur un "séparateur".

Dans votre cas, j'utiliserais le caractère : et conserverais le premier élément du tableau.
Notez que vous devez rajouter le :...

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label>Total amount:<span id="DT_sum">23.23</span></label>
<button id="btn">Click</button>
$("#btn").click(function() {
  var value_from_DT = 55.72;
  $("#DT_sum").text(value_from_DT);
});

Une autre façon, ce serait mieux , serait d'avoir une span dédiée spécifiquement pour la valeur numérique:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<label>Total amount:23.23</label>
<button id="btn">Click</button>
$("#btn").click(function() {
  var value_from_DT = 55.72;
  $("label").text($("label").text().split(":")[0]+":");
  $("label").append(value_from_DT)
});


0 commentaires