Recherchez une expression régulière à utiliser pour la recherche floue IP dans la zone de texteUtilisez
Le format approximatif correct est :
1.1
1.11.1
1.1.11
Répond aux éléments de filtre suivants :
Ne peut pas commencer par "." : .1.1.11
Ne peut pas terminer par "." : 1.1.11.
Ne peut pas avoir 2 "." consécutifs : 1..1.11
Ne peut pas avoir de point sauf Point anglais Symboles autres que "." : 1@1.1
Pas d'espaces : 1 .1 .1
Pas de lettres ni de caractères chinois
Un seul chiffre peut passer
Parce que je ne suis pas très bon en expressions régulières, j'utilise des méthodes stupides pour les éliminer étape par étape. Mon idée est de supprimer d'abord les espaces intérieurs et extérieurs :
1. Supprimez les espaces intérieurs : /^S*$/
. 2. Supprimez les espaces des deux côtés :
while((value.indexOf(" ") == 0) && (value.length > 1)) {
return false;
}
while((value.lastIndexOf(" ") == value.length - 1) && (value.length > 1)) {
return false;
}
3. Excluez ensuite les symboles : /<|>|||*|?||"|/|&|#|@|!|~|(|)/;
4. Supprimez les expressions régulières chinoises : /^ [u4e00-u9fa5]+$/;
Je ne le ferai pas plus tard, et je pense que ces méthodes sont très lourdes et redondantes. Existe-t-il un moyen régulier de résoudre ce problème ?
Parmi eux,
(d|[1-9]d|1dd|2[0-4]d|25[0-5])
就是专门用来匹配 0~255 的数字的,上面的正则表达式可以理解为:([0~255].){3}[0~255]
Pour parler franchement, cela signifie commencer par un nombre et terminer par un nombre, et vous pouvez insérer un point au milieu du nombre.
L'adresse IP comporte généralement deux points, donc
L'adresse IP est au format x.x.x.x. Le x le plus long est un entier à 3 chiffres et ne dépasse pas 255, donc mon expression régulière est la suivante :
/^([0-9]|[1-9]d|1dd|2[0-4]d|25[0-5])(.([0-9]|[1-9]d| 1dd|2[0-4]d|25[0-5])){0,3}$/
Cette partie sert principalement à faire correspondre les nombres entre [0,255]
([0-9]|[1-9]d|1dd|2[0-4]d|25[0-5])
/^d+(?:.d+)*$/
A été personnellement testé pour répondre aux besoins du sujet