Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Finden Sie einen js-Regex: Es können nur Zahlen und englische Punkte eingegeben werden, keine zwei aufeinanderfolgenden Punkte, und Sie können nicht mit „.“ beginnen oder enden.

Suchen Sie im Textfeld nach einem regulären Ausdruck für die IP-Fuzzy-SucheVerwenden Sie

Das korrekte ungefähre Format ist:
1.1
1.11.1
1.1.11

Erfüllen Sie die folgenden Filterelemente:
Kann nicht mit „.“ beginnen: .1.1.11
Kann nicht mit „.“ enden: 1.1.11.
Kann nicht zwei aufeinanderfolgende „.“ haben: 1..1.11
Kann keinen Punkt haben außer Englischer Punkt Andere Symbole als „.“: 1@1.1
Keine Leerzeichen: 1 .1 .1
Keine Buchstaben und chinesischen Schriftzeichen
Nur 1 Zahl kann passieren

Da ich nicht sehr gut in regulären Ausdrücken bin, benutze ich dumme Methoden, um sie Schritt für Schritt zu entfernen:
1 Die inneren Leerzeichen entfernen: /^S*$/
2. Entfernen Sie die Leerzeichen auf beiden Seiten :

    while((value.indexOf(" ") == 0) && (value.length > 1)) {
        return false;
    }
    while((value.lastIndexOf(" ") == value.length - 1) && (value.length > 1)) {
        return false;
    }

3. Dann schließen Sie Symbole aus: /<|>|||*|?||"|/|&|#|@|!|~|(|)/;
4. Entfernen Sie chinesische reguläre Ausdrücke: /^ [u4e00-u9fa5]+$/;
Ich werde es später nicht tun, und ich denke, dass diese Methoden sehr umständlich und überflüssig sind. Gibt es eine reguläre Möglichkeit, dieses Problem zu lösen?

天蓬老师天蓬老师2686 Tage vor1058

Antworte allen(5)Ich werde antworten

  • 学习ing

    学习ing2017-06-12 09:24:18

    /^(((\d+[.])+\d+)|\d)$/

    Antwort
    0
  • 代言

    代言2017-06-12 09:24:18

    /^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/
    

    其中,(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]) 就是专门用来匹配 0~255 的数字的,上面的正则表达式可以理解为:([0~255]\.){3}[0~255]

    Antwort
    0
  • 迷茫

    迷茫2017-06-12 09:24:18

    说白了就是数字开头数字结尾,数字中间可以插入点号。

    /^(\d+[.])+\d+$/
    

    ip地址一般两个点,所以

     /^(\d+[.]){2}\d+$/

    Antwort
    0
  • 仅有的幸福

    仅有的幸福2017-06-12 09:24:18

    IP地址是x.x.x.x这样的格式,x最长是3位整数且不超过255,所以我的正则表达式如下:

    /^([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])){0,3}$/

    这一部分主要是匹配[0,255]之间的数

    ([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])

    Antwort
    0
  • 滿天的星座

    滿天的星座2017-06-12 09:24:18

    /^\d+(?:\.\d+)*$/
    已经亲测能满足题主需求

    Antwort
    0
  • StornierenAntwort