9
votes

Autoriser uniquement 2 points décimales Entrée dans une zone de texte à l'aide de JQuery?

Autoriser uniquement 2 points décimaux lors de la saisie d'un numéro à une zone de texte à l'aide de jQuery.

Veuillez suggérer toute regex pour autoriser seulement deux décimales dans la zone de texte.

J'ai essayé le code suivant. xxx


1 commentaires

A obtenu la vitesse \ d + (?: \. \ D {1,2})? ?


5 Réponses :


12
votes

Vous pouvez le faire sans regex: xxx


4 commentaires

C'est la meilleure solution. Voici un jsfiddle attaché pour montrer que cela fonctionne. jsfiddle.net/vfz5f


Alors comment trouver des nombres décimaux dans cela ??


@RJ. que veux-tu dire? Trouvez un nombre de décimales ou de le réparer à 4 décimales par ex.


Dans ce Jsfiddle, j'ai pu ajouter des chiffres, des lettres, des périodes multiples, etc. Qu'est-ce qui ne va pas?



0
votes
function checkDecimal(el){
 var ex = /^[0-9]+\.?[0-9]*$/;
  if(ex.test(el.value)==false){
   el.value = el.value.substring(0,el.value.length - 1);
  }
}

0 commentaires

6
votes

Je ne faisais que tester à l'aide de Regex pour l'apprendre. Mais je recommande d'aller avec la solution de rôti. xxx


xxx

Travailler Violon


0 commentaires

4
votes

Une autre solution de travail

HTML H2>
$(".two-decimals").on("keypress", function (evt) {
        var $txtBox = $(this);
        var charCode = (evt.which) ? evt.which : evt.keyCode
        if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
            return false;
        else {
            var len = $txtBox.val().length;
            var index = $txtBox.val().indexOf('.');
            if (index > 0 && charCode == 46) {
              return false;
            }
            if (index > 0) {
                var charAfterdot = (len + 1) - index;
                if (charAfterdot > 3) {
                    return false;
                }
            }
        }
        return $txtBox; //for chaining
    });


0 commentaires

5
votes

html: strong> xxx pré>

script: strong> p>

$(document).ready(function () {
    $('body').on('keyup', '.maskedExt', function () {
        var num = $(this).attr("maskedFormat").toString().split(',');
        var regex = new RegExp("^\\d{0," + num[0] + "}(\\.\\d{0," + num[1] + "})?$");
        if (!regex.test(this.value)) {
            this.value = this.value.substring(0, this.value.length - 1);
        }
    });
});


0 commentaires