1、校验IPV4地址:

  1. function validateIp(obj) {
  2. var ip=$(obj).val();
  3. var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;//正则表达式
  4. if(re.test(ip))
  5. {
  6. if( RegExp.$1<256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256)
  7. return true;
  8. }
  9. $(obj).val("");
  10. dialogTop('<s:text name='cems.valid.ipIllegal'></s:text>',"alert alert-warning");
  11. return false;
  12. }

调用:onblur="validateIp(this)"

  1. function addFilterIp(){
  2. var append='<div class="filter_ip_div" style="margin-top:5px;">'
  3. +'<input type="text" class="form-control " style="width:135.5px;display:inline" onblur="validateIp(this)">'
  4. +'~<input type="text" class="form-control " style="width:135.5px;display:inline" onblur="validateIp(this)">'
  5. +'<img src="${basePath}/images/delete.png" onclick="delFilterIp(this)"/></div>';
  6. $("#filter_ip_td").append(append);
  7. //if($("#filter_begin_ip").val() && $("#filter_end_ip").val()){
  8. // $("#filter_ip_td").append(append);
  9. //};
  10. controlButton("filterItem_window");
  11. }

2、检验IPV6地址:

  1. function isIPv6(str){
  2. if(str.indexOf(":") >= 0){//需要加上判断:号是否存在,因为如果不存在冒号,就没必要走进来判断;同时如果没有冒号,会报错:cann't read "length" of null
  3. return str.match(/:/g).length<=7 && /::/.test(str) ? /^([\da-f]{1,4}(:|::)){1,6}[\da-f]{1,4}$/i.test(str) : /^([\da-f]{1,4}:){7}[\da-f]{1,4}$/i.test(str);
  4. }
  5. }

3、优化后的IPV4校验和执行函数:

  1. function isIPv4(str){
  2. var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;//正则表达式
  3. if(re.test(str)){
  4. if( RegExp.$1<256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256)
  5. return true;
  6. };
  7. }
  8. function validateIp(obj) {
  9. var ip=$(obj).val();
  10. if(isIPv4(ip) || isIPv6(ip))
  11. {
  12. return true;
  13. }
  14. $(obj).val("");
  15. dialogTop('<s:text name='cems.valid.ipIllegal'></s:text>',"alert alert-warning");
  16. return false;
  17. }

4、IP地址大小校验

  1. /**
  2. * 验证后面的IP是否比前面的大
  3. */
  4. function ipIsLarge(startIp,endIp) {
  5. endIp = _ip2int(endIp);
  6. startIp = _ip2int(startIp);
  7. if (endIp>=startIp) {
  8. return true;
  9. } else {
  10. dialogMsg("终止IP必须大于等于起始IP",);
  11. return false;
  12. }
  13. }
  14. //IP转成整型
  15. function _ip2int(ip) {
  16. var num = ;
  17. ip = ip.split(".");
  18. num = Number(ip[]) * * * + Number(ip[]) * * + Number(ip[]) * + Number(ip[]);
  19. num = num >>> ;
  20. return num;
  21. }
  1. /*验证是否添加了相同的ip段*/
  2. function isDiffrentIP(ipBegin, ipEnd){
  3. var num=$("#"+tableId).jqGrid("getRowData").length;
  4. for(var i = ; i < num; i++){
  5. if((ipBegin === $("#"+tableId).jqGrid("getRowData")[i].ipBegin) && (ipEnd === $("#"+tableId).jqGrid("getRowData")[i].ipEnd)){
  6. dialogMsg("请不要输入重复的ip段",);
  7. return false;
  8. }
  9. }
  10. return true;
  11. }

5、URL地址校验

  1. //网址验证
  2. function isURL(str_url){
  3. var reg=/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/;
  4. if (reg.test(str_url)){
  5. return (true);
  6. }else{
  7. return (false);
  8. }
  9. }

校验IPv4和IPv6地址和URL地址的更多相关文章

  1. php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)

    1.电子邮件地址的校验 <?php /* 校验邮件地址*/ function checkMail($email) { //用户名,由“w”格式字符.“-”或“.”组成 $email_name= ...

  2. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

  3. IP地址(IPv4)/IPv6地址的正则表达式

    原地址:http://pfeishao.blog.163.com/blog/static/18162337020112113130453/ Pv4地址正则表达式:^((25[0-5]|2[0-4]\d ...

  4. IPv6地址在URL上的格式

    转自:http://www.cnpaf.net/Class/RFC/200408/983.html 摘要 本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式.在包括Microsoft的I ...

  5. ipv6地址在URL中的表达方式,如何在URL地址中包含ipv6地址

    摘要 本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式.在包括Microsoft的IE,Mozilla和Lynx等几个已经被广泛安装使用的浏览器的IPv6版本中,这种格式已经被使用.并 ...

  6. Ipv4和Ipv6的地址字符串长度

    SOURCE   IPv4采用32位地址长度      xxx.xxx.xxx.xxx  15max(string) IPv6采用128位地址长度   估计是  xxx.xxx.xxx.xxx. xx ...

  7. windows 获取本机(全部)IPv4、IPv6、MAC地址方法 (C/C++)

    windows下获取IP地址的两种方法: 一种可以获取IPv4和IPv6,但是需要WSAStartup: 一种只能取到IPv4,但是不需要WSAStartup: 如下: 方法一:(可以获取IPv4和I ...

  8. IPv4 和 IPv6地址

    目前Internet上使用的基本都是IPv4地址,也就是说地址总共是32个比特位,也就是32位二进制数.  所以IPv4地址总的容量是 2的32次方 = 4294967296 比如 11010010 ...

  9. 套接字编程简介: IPV4套接字地址结构/ 通用套接字地址结构/ IPV6套接字地址结构/新通用套接字地址结构

    IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中. struct in_addr { in_addr_t ...

随机推荐

  1. 1022 Digital Library (30)(30 point(s))

    problem A Digital Library contains millions of books, stored according to their titles, authors, key ...

  2. 「WC2016」挑战NPC

    「WC2016」挑战NPC 解题思路 这个题建图非常厉害,带花树什么的只会口胡根本写不动,所以我写了机房某大佬教我的乱搞. 考虑把一个筐 \(x\) 拆成 \(x1,x2,x3\) 三个点,且这三个点 ...

  3. [POI2017]Sabotaż

    [POI2017]Sabotaż 题目大意: 一棵\(n(n\le5\times10^5)\)个结点的树,初始时有一个未知的黑点,其余全为白点.对于一个点,如果其子树中黑点所占比例超过\(x\),则这 ...

  4. CodeIgniter框架中关于URL重写(index.php)的二三事

    最近,在做自己的个人网站时,采用了轻量级的php框架CodeIgniter.乍一看上去,代码清晰简洁,MVC模型非常容易维护.开发时我采用的工具是Netbeans IDE 8.0,当然,本文的内容和开 ...

  5. 关于django Class-based views的理解

    django是mvt模式,其中v就是这个显示逻辑部分,简单来讲,view函数可以说是接收request,然后处理,返回response的主体函数. 对于一些简单的逻辑关系,可以用直接用函数模式来进行处 ...

  6. [LeetCode] Pacific Atlantic Water Flow 题解

    题意 题目 思路 一开始想用双向广搜来做,找他们相碰的点,但是发现对其的理解还是不够完全,导致没写成功.不过,后来想清楚了,之前的错误可能在于从边界点进行BFS,其访问顺序应该是找到下一个比当前那个要 ...

  7. Codeforces Round #287 (Div. 2) B. Amr and Pins 水题

    B. Amr and Pins time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  8. spring---transaction(5)---事务的体系

    1.写在前面 事务的模型为3中: 本地事务模式. 编程事务模式. 声明事务模式. 例子1:本地事务模式 Connection conn=jdbcDao.getConnection(); Prepare ...

  9. How to exit the entire application from a Python thread?

    If all your threads except the main ones are daemons, the best approach is generally thread.interrup ...

  10. 浅入浅出---JQuery究竟是什么?

    学习完了JQuery之后.我便感觉云里雾里的,JQuery究竟是什么.朦朦胧胧感觉到JQuery应该是javascript函数的封装.就应该像WinForm窗口应用程序中能够调用的系统函数,据之前所学 ...