J'ai besoin de prendre un prix d'un élément et de l'ajouter à un autre.
J'utilise ceci: p> qui semble fonctionner pour (improbable La virgule me trébuche. P> ** Edit ** P> > Je suis parti pendant une heure pour revenir aux tas de réponses. Avant de passer par eux, je pensais que je clarifierais plutôt que de répondre à tous les commentaires: p> La plate-forme utilisée automatiquement génère la valeur totale des articles dans un panier d'achat. Il est rendu dans un élément - cette modification selon laquelle un utilisateur ajoute ou supprime des éléments. P> La valeur est peu susceptible d'entrer dans 10 000,00 car les coûts de produits ne sont pas si élevés. P> Je suis nouveau à utiliser la regex, il m'a fallu assez longtemps pour que ce soit loin, d'où la question. p> Généré automatique HTML: P> 0.50 $ code>, $ 1.00 code>, 20,00 $ code>, 200,00 $ code> mais j'ai frappé un mur de briques sur 1 000,00 $ 10 000,00 $ p> 10 000,00 $ 00 code> sera déjà utilisé). P> <span vertical="False" quote="False" id="catCartSummary">
<table cellspacing="0" class="cartSummaryTable">
<tbody>
<tr>
<td class="cartSummaryItem">3 item(s), Total: $115.00 <a href="#" class="cartSummaryLink">View Cart</a></td>
</tr>
</tbody>
</table>
</span>
6 Réponses :
Ceci fonctionne pour moi: Démo Strong> p> J'ai trouvé une excellente regex qui saisit toutes les devises valides et l'a personnalisée un peu à vos besoins: p> La source de la regex p> p>
Cela correspondrait également à 0 $ ,. 0 code>.
OK mais correspond toujours à 0,0,0,0,0,0,0 $ code> cependant.
@Markbyers. Et ce n'est pas une entrée valide ??
Eh bien, il est vraiment difficile de dire de la question des intrants valides, car la question n'est pas claire. J'ai demandé à l'OP dans un commentaire à propos d'une éventuelle entrée Vaild / Invalide, mais il n'a pas répondu. Si cela va être utilisé pour quelque chose d'important, je préférerais voir des intrants ambiguës ou incertains rejetés.
@gdoron - c'est une regex intéressante. Vous avez dit que vous avez "trouvé" - avez-vous une URL?
@Justin. J'ai oublié de mentionner la source, j'ai ajouté. Merci de le pointe!
Modifier quelque chose comme ceci:
\$\d{1,3}(,\d{3})*(?:\.\d+)?
J'ai celui-ci:
^\d{1,3}(,\d{3})*(\.\d+)?$
En fait, cette réégycle est incorrecte car elle correspond à tous les numéros, pas seulement la devise ajoutez (? <= \ €) dans la bengage
@DMitry: J'ai indiqué dans ma réponse, je ne fais pas correspondre à la monnaie. Il pourrait vouloir changer sa monnaie plus tard, et ce sera mieux s'il n'en a pas compris celui-ci avec regex.
Comme je l'asseté, Yuo Regexp Match "TOUT NUMÉRO", ce qui ne correspond pas à celui-ci uniquement partie de la devise, cela correspond par exemple "Le joueur sous le numéro 47 a été acheté pour une chaîne de 100,00 $" Même 47, ce qui n'est évidemment pas un le prix.
var re = /^\d{1,3}(\,\d{3})*(?:\.\d+)?$/;
console.log(re.test('0.50'));
console.log(re.test('1'));
console.log(re.test('20.50'));
console.log(re.test('200.50'));
console.log(re.test('2,000'));
console.log(re.test('2,000.50'));
console.log(re.test('20,000'));
console.log(re.test('20,000.00'));
console.log(re.test('1,000,000'));
console.log(re.test('1,000,000.50'));
remplacer non-chiffre code> et non-dot code> simbols par '' ' code>, puis appliquez parsefloat code>: var currenciesAsNumbers = currencies.map( function(item){
return parseFloat( item.replace(/[^\d\.]/g,'') );
}); // [115]
C'est en fait la meilleure réponse. Si vous devez ajouter les prix, vous feriez mieux de convertir en chiffres réels, puis de reformater.
Il a écrit qu'il avait besoin de prendre la valeur d'un élément à un autre, je ne suis pas sûr de pouvoir analyser la valeur.
Cela convertit un dollar en une valeur numérique. Ceci est certainement utile de savoir comment faire. Cependant, cela ne l'aidera pas à trouver le montant du dollar en premier lieu.
@gdoron, ce n'est pas évident, quel op contre "l'ajout à une autre phrase". Votre réponse attrape la valeur, ma réponse convertit la devise en nombre pour effectuer des mathématiques sur celui-ci (spécifiquement "Ajouter").
@Engineer - Cela a parfaitement travaillé pour ce que je faisais, merci.
Striming Out $ Symbole de devise ainsi que la virgule peut être facilement atteint avec cette regex en utilisant Remplacer: [^ 0-9] p>
Démo disponible ici: http://rubular.com/r/gwkx62rtla P>
FYI REGEX fait partie de JavaScript, pas spécifiquement jQuery.
Que devrait-il arriver avec quelque chose comme
1.000,00 $ code>?Vous ne pouvez pas ajouter un coma dans votre regex?
@jbduzan: Vraisemblablement pas, sinon, je suppose qu'il ne demanderait pas comment le faire.
Vous avez deux bonnes réponses, cela dépend de ce que vous voulez, d'analyser la valeur ou de saisir la valeur.