美文网首页
ip 的正则和函数判断

ip 的正则和函数判断

作者: 夫子有多高酱 | 来源:发表于2017-05-05 15:32 被阅读0次

很多童鞋需要用户的表单输入,习惯性的使用正则匹配判断,但是这个有时候可能不是最好的方法。

以 ip 地址为例

如果用正则去判断 ip 地址的正确性,代码可能是这样的

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

如果是函数去判断的话,代码可能是这样的

function checkIP (ip) {
  if (typeof ip !== 'string') return false
  let ipSplit = ip.split('.')

  if (ipSplit.length != 4) return false

  for (let elem in ipSplit) {
    elem = parseInt(elem)

    if (isNaN(elem)) return false

    if (elem < 0 || elem > 255) return false
  }

  return true
}

正则相比函数,本身非常的难读,不易去理解

我也简单的写了一个判断代码

function checkIP (ip) {
  if (typeof ip !== 'string') return false
  let ipSplit = ip.split('.')

  if (ipSplit.length != 4) return false

  for (let elem in ipSplit) {
    elem = parseInt(elem)

    if (isNaN(elem)) return false

    if (elem < 0 || elem > 255) return false
  }

  return true
}

let exp = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
let ip = '192.168.1.1'
console.time('正则')
console.log(`test result -> ${exp.test(ip)}`)
console.timeEnd('正则')

console.time('函数')
console.log(`test result -> ${checkIP(ip)}`)
console.timeEnd('函数')

执行的结果是这样的

执行结果截图

可以看到,就连速度,也比不过函数。

当然,这都是最简单的判别。没有所谓的标准,只是抛出一个问题,不要总是用正则去解决这样的问题。特别是那些还不会写正则的童鞋,完全可以用函数去尝试一下。

也欢迎大家评论想法哈哈哈。

相关文章

  • ip 的正则和函数判断

    很多童鞋需要用户的表单输入,习惯性的使用正则匹配判断,但是这个有时候可能不是最好的方法。 以 ip 地址为例 如果...

  • java正则表达式判断 ip 地址是否正确

    java正则表达式判断 ip 地址是否正确 可以通过这个图来理解 ip 地址的正则表达式: java 的 ip 正...

  • ip地址正则判断

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

  • 挂面05

    1.正则判断ip IP地址的长度为32位(共有2^32个IP地址),分为4段,每段8位用十进制数字表示,每段数字范...

  • python笔试面试项目实战2020百练7使用正则表达式判断IP

    使用正则表达式判断IP是否合法 有socket等库的方法已经实现了IP合法性的检查,这个是某外企(flexport...

  • 进阶7正则表达式课程

    手机号匹配 单词匹配 正则表达式量词: 分组 判断是否是手机号的函数

  • 正则IP和端口

    1:ip的正则表达式: 2:端口的正则表达式:

  • 2018-05-18

    函数绑定器 静态断言 内联 CPP转义字符 正则表达式 //regex_match //判断匹配//rege...

  • JavaScript 深拷贝

    JSON 缺点 不支持 Date、正则、undefined、函数等数据 不支持引用,即环状结构 递归 要点: 判断...

  • JS常用各种正则表达式

    原文链接 匹配url 这个url的正则表达式判断的JavaScript!比较全面的。它验证的情况包括IP,域名(d...

网友评论

      本文标题:ip 的正则和函数判断

      本文链接:https://www.haomeiwen.com/subject/ilqstxtx.html