1、获取字符串里所有的IP地址(IPV4)
JS代码:
let str = '给你ip地址198.16.92.193,找到我127.0.0.2哈哈哈'
// 正则表达式(找ip地址)
let reg = /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/g
let array = str.match(reg);
console.log(array)
运行结果:
2、比较与原IP数组内容是否相等
// 预期结果
let arr = [ '198.16.92.193', '127.0.0.23' ]
// 实际结果
let str = '给你ip地址,找到我198.16.92.193哈哈哈127.0.0.1,阿尔法127.0.0.23他三分'
// 正则表达式(找ip地址)
let reg = /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/g
let array = str.match(reg);
// 调用方法
let result = diffArr(arr,array);
console.log(result)
/**
* 比较两个数组的值是否相等
* @param expectedResult 预期结果数组
* @param actualResult 实际结果数组
*/
function diffArr(expectedResult, actualResult) {
// 默认实际结果少于预期结果
let info = '实际结果少于预期结果'
let outer = expectedResult
let inner = actualResult
// 错误结果
let errList = []
// 判断长度,长度长的作为外层循环
// 实际结果多于预期结果
if (expectedResult.length < actualResult.length){
info = '实际结果多于预期结果'
outer = actualResult
inner = expectedResult
}
// 比较两个数组的值
for (let i = 0; i < outer.length; i++) {
let flag = false
for (let j = 0; j < inner.length; j++) {
if (outer[i] === inner[j]){
flag = true
break
}
}
if (!flag){
errList.push(outer[i])
}
}
// 若数组为空则两个结果集相等
let result = {
status: true,
info: '结果相等',
errList: []
}
if (errList.length > 0){
result.status = false
result.info = info
result.errList = errList
}
return result
}
结果:
{
status: false,
info: '实际结果多于预期结果',
errList: [ '127.0.0.1' ]
}