11
votes

Regex pour ne valider que des chiffres et des points

Je veux une expression Java Regex qui accepte uniquement les chiffres et les points.

Par exemple, P>

             1.1.1 ----valid
             1.1   ----valid
             1.1.1.1---valid
             1.    ----not valid


3 commentaires

Qu'en est-il de ". 1" , "1..1" , "1.11" ? Avez-vous déjà essayé quelque chose? Si oui, pourriez-vous poster cela aussi et expliquer ce qui s'est mal passé?


Un seul chiffre serait-il valide!


Qu'en est-il des chiffres sans points? En d'autres termes, le point est-il facultatif ou requis?


5 Réponses :


3
votes

Vous voulez donc une regex qui veut des chiffres et des périodes, mais commence et se termine par un numéro?

"[0-9][0-9.]*[0-9]"


1 commentaires

Cela fonctionne selon votre condition. Ici (\. \ D +) + vérifie au moins un point avec un numéro. ^ \ d + (\. \ d +) + $ \ d + (\ \ \ d +) + au moins un numéro au début d'un point au moins un numéro au moins un



47
votes

Je suppose que c'est ce que vous voulez: xxx pré>

explication: il accepte les chiffres séparés par des points; il commence et se termine par nombre; Un numéro peut avoir plusieurs chiffres; Un chiffre sans points est également accepté. P>

variante sans chiffres multiples: p> xxx pré>

variantes où au moins un point est requis: P>

Pattern NUMBERS_WITH_DOTS = Pattern.compile("^\\d+(\\.\\d+)*$");


3 commentaires

Cela m'a été utile, j'avais besoin de prendre l'indice d'un résumé, donc j'ai modifié à cela: ^ (\ D + [\. \ D +] *). Merci!


Pour une entrée d'utilisateur, j'ai besoin d'accepter une chaîne avant de saisir le numéro après le point. J'ai donc besoin d'accepter quelque chose comme 1. avant le chiffre après le . Quelqu'un peut-il aider?


@ CONOR909 En supposant que vous souhaitez également accepter une chaîne vide puis ^ (\ d + \.) * \ D * $



0
votes
"^\\d(\\.\\d)*$"

1     ----valid (if it must be not valid, replace `*` => `+` )
1.1.1 ----valid
1.1   ----valid
1.1.1.1---valid
1.    ----not valid
11.1.1 ---not valid (if it must be valid, add `+` after each `d`) 

0 commentaires

0
votes
<!DOCTYPE html>
<html>
<body>

<p>RegEx to allow digits and dot</p>
Number: <input type="text" id="fname" onkeyup="myFunction()">

<script>
function myFunction() {
    var x = document.getElementById("fname");
    x.value = x.value.replace(/[^0-9\.]/g,"");
}
</script>

</body>
</html>

0 commentaires

2
votes

Je suppose que c'est ce que vous voulez: xxx

explication: il accepte les chiffres séparés par des points; il commence et se termine par nombre; Un numéro peut avoir plusieurs chiffres; Un numéro sans points n'est pas accepté.

la sortie comme celle-ci -

  • 1.1
  • 1.12
  • 1.1.5
  • 1.15.1.4

0 commentaires