регулярное выражение javascript для IP-адреса с маскировкой звездочкой - PullRequest
0 голосов
/ 08 января 2019

Я хотел бы сделать регулярное выражение для IP-адреса звездочкой (*) что соответствует этим ниже:

Цифра 127.0 может быть любым числом от 0 до 255.

**[TRUE]**
127.*.*.*
127.0.*.*
127.0.0.*

**[FALSE]**
127.*.*.1
127.*.0.1
127.0.*.1

То, что я сделал до сих пор, это ... и, конечно, не удалось разобрать. Я полностью потерялся ..

_regex = function(value) {
    var _match = /^(?:(\d|1\d\d|2[0-4]\d|25[0-5]))\.(?:(\*|\d|1\d\d|2[0-4]\d|25[0-5]))\.(\*|(?:\d{1,2}(?:.\d{1,3}?)))\.(\*|(?:\d{1,3}(?:\*?)))$
    if(_match.test(value)){
        //do something;
    }
}

Если вы дадите мне какой-нибудь шанс узнать это, буду очень признателен. Спасибо.

1 Ответ

0 голосов
/ 08 января 2019

Я думаю, что вы ищете отрицательный взгляд вперед, чтобы убедиться, что ни одна цифра не следует за звездочкой.

Вроде так: (\*(?!.*\d))

рабочий пример:

var ips = [
  '127.*.*.*',
  '127.0.*.*',
  '127.0.0.*',
  '127.*.*.1',
  '127.*.0.1',
  '127.0.*.1'
];

var regex = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|(\*(?!.*\d)))(\.|$)){4}$/;

for(var i = 0; i < ips.length; i++){
  console.log(ips[i] + ': ' + regex.test(ips[i]));
}
...