Я делаю функцию, которая принимает пример и IP-адрес. Напр.Сравнение массива?
compare('192.168.*','192.168.0.42');
Астерикс указывает, что следующие части ip могут быть любыми. Функция возвращает true или false на основании того, является ли пример и ip совпадением. Я попробовал такое решение.
var compare = function(example, ip){
var ex = example.split(".");
var ip = ip.split(".");
var t = 0;
for(var i=0; i<4; i++){
if(ex[i] == ip[i] || ex[i] == "*" || typeof ex[i] === 'undefined' && ex[i-1] == "*"){
t++
if(t==4){
return true
}
}else{
return false;
}
}
}
Каковы основные преимущества использования регулярного выражения над этим решением? Что было бы лучшим регулярным выражением для этого?
Regex предназначен для сравнения строк, поэтому вы можете выполнять итерацию по массиву и использовать регулярное выражение для проверки каждого значения. –
Вы задаете вопрос для JavaScript или для Java тоже? –