浅析 : 一个IPV4字符由3个大于0小于255的数字 以及 3个点构成, 所有我们需要判断小数点数量是否满足条件, 以及小数点隔开的每部分是否满足条件即可.

思路:

  1. 校验是否有3个小数点;

  2. 以小数点将字符分割为4部分,校验每部分的字符;

  3. 校验该部分转为int值之后(n), 满足0<n<255,而且首位字符不为0

代码如下:

  

 - (BOOL)verify: (NSString *)ipV4Address {
__block BOOL _filter = YES;
NSArray *array = [ipV4Address componentsSeparatedByString:@"."];
if (array.count == ) {
[array enumerateObjectsUsingBlock:^(NSString *string, NSUInteger idx, BOOL * _Nonnull stop) {
NSInteger intValue = [string intValue];
if (intValue <= || intValue >= ) {
_filter = NO;
*stop = YES;
}
if ([[string substringWithRange:NSMakeRange(, )] integerValue] == ) {
_filter = NO;
*stop = YES;
}
}];
}else {
return NO;
}
return _filter;
}

最新文章

  1. 旺财速啃H5框架之Bootstrap(四)
  2. 简单分析JavaScript中的面向对象
  3. 读取70开头的xml,gbk转成utf-8
  4. 介绍一个非常好用的跨平台C++开源框架:openFrameworks
  5. 【JavaScript】EasyUI框架的Dialog控件根据浏览器分辨率自动调节宽高
  6. 移动应用安全开发指南(Android)--完结篇(http://www.bubuko.com/infodetail-577312.html)
  7. HTML--7JavaScript的DOM操作
  8. 解决Win10默认占用80端口
  9. Android使用代码消除App数据并重新启动设备
  10. winform音频播放器(有声小说[凡人修仙传])
  11. ElasticSearch和solr的差别
  12. 0415关于通过FILEBEAT,LOGSTASH,ES,KIBNA实现数据的采集
  13. 2018-2019-2 《网络对抗技术》Exp2 后门原理与实践
  14. php优秀框架codeigniter学习系列——CI_Lang类学习
  15. POJ3261-Milk Patterns-后缀数组
  16. 3.5Python数据处理篇之Numpy系列(五)---numpy文件的存取
  17. ExtJS框架基础:事件模型及其常用功能
  18. UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现(转)
  19. 卓越的目标检测器Pelee
  20. iNotify.js通知JS 实现浏览器的 title 闪烁、滚动、声音提示、chrome、Firefox、Safari等系统通知。

热门文章

  1. MySql Navicat可视化工具
  2. 自学_DOM&lt;五&gt;
  3. SpringCloud(二):服务的注册与发现(Eureka)
  4. Linux相关集合
  5. 【JDBC】工具类的抽取
  6. Jenkins实现单一安卓项目打包多个module填坑实录
  7. vue踩坑--细节决定成败
  8. Day11 - Python基础11 模块学习——optparse
  9. WPF 精修篇 page
  10. vue表格合并行的一个实例