校验IPv4和IPv6地址和URL地址
1、校验IPV4地址:
function validateIp(obj) {
var ip=$(obj).val();
var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;//正则表达式
if(re.test(ip))
{
if( RegExp.$1<256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256)
return true;
}
$(obj).val("");
dialogTop('<s:text name='cems.valid.ipIllegal'></s:text>',"alert alert-warning");
return false;
}
调用:onblur="validateIp(this)"
function addFilterIp(){
var append='<div class="filter_ip_div" style="margin-top:5px;">'
+'<input type="text" class="form-control " style="width:135.5px;display:inline" onblur="validateIp(this)">'
+'~<input type="text" class="form-control " style="width:135.5px;display:inline" onblur="validateIp(this)">'
+'<img src="${basePath}/images/delete.png" onclick="delFilterIp(this)"/></div>';
$("#filter_ip_td").append(append);
//if($("#filter_begin_ip").val() && $("#filter_end_ip").val()){
// $("#filter_ip_td").append(append);
//};
controlButton("filterItem_window");
}
2、检验IPV6地址:
function isIPv6(str){
if(str.indexOf(":") >= 0){//需要加上判断:号是否存在,因为如果不存在冒号,就没必要走进来判断;同时如果没有冒号,会报错:cann't read "length" of null
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);
}
}
3、优化后的IPV4校验和执行函数:
function isIPv4(str){
var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;//正则表达式
if(re.test(str)){
if( RegExp.$1<256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256)
return true;
};
}
function validateIp(obj) {
var ip=$(obj).val();
if(isIPv4(ip) || isIPv6(ip))
{
return true;
}
$(obj).val("");
dialogTop('<s:text name='cems.valid.ipIllegal'></s:text>',"alert alert-warning");
return false;
}
4、IP地址大小校验
/**
* 验证后面的IP是否比前面的大
*/
function ipIsLarge(startIp,endIp) {
endIp = _ip2int(endIp);
startIp = _ip2int(startIp);
if (endIp>=startIp) {
return true;
} else {
dialogMsg("终止IP必须大于等于起始IP",);
return false;
}
}
//IP转成整型
function _ip2int(ip) {
var num = ;
ip = ip.split(".");
num = Number(ip[]) * * * + Number(ip[]) * * + Number(ip[]) * + Number(ip[]);
num = num >>> ;
return num;
}
/*验证是否添加了相同的ip段*/
function isDiffrentIP(ipBegin, ipEnd){
var num=$("#"+tableId).jqGrid("getRowData").length;
for(var i = ; i < num; i++){
if((ipBegin === $("#"+tableId).jqGrid("getRowData")[i].ipBegin) && (ipEnd === $("#"+tableId).jqGrid("getRowData")[i].ipEnd)){
dialogMsg("请不要输入重复的ip段",);
return false;
}
}
return true;
}
5、URL地址校验
//网址验证
function isURL(str_url){
var reg=/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/;
if (reg.test(str_url)){
return (true);
}else{
return (false);
}
}
校验IPv4和IPv6地址和URL地址的更多相关文章
- php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
1.电子邮件地址的校验 <?php /* 校验邮件地址*/ function checkMail($email) { //用户名,由“w”格式字符.“-”或“.”组成 $email_name= ...
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...
- IP地址(IPv4)/IPv6地址的正则表达式
原地址:http://pfeishao.blog.163.com/blog/static/18162337020112113130453/ Pv4地址正则表达式:^((25[0-5]|2[0-4]\d ...
- IPv6地址在URL上的格式
转自:http://www.cnpaf.net/Class/RFC/200408/983.html 摘要 本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式.在包括Microsoft的I ...
- ipv6地址在URL中的表达方式,如何在URL地址中包含ipv6地址
摘要 本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式.在包括Microsoft的IE,Mozilla和Lynx等几个已经被广泛安装使用的浏览器的IPv6版本中,这种格式已经被使用.并 ...
- Ipv4和Ipv6的地址字符串长度
SOURCE IPv4采用32位地址长度 xxx.xxx.xxx.xxx 15max(string) IPv6采用128位地址长度 估计是 xxx.xxx.xxx.xxx. xx ...
- windows 获取本机(全部)IPv4、IPv6、MAC地址方法 (C/C++)
windows下获取IP地址的两种方法: 一种可以获取IPv4和IPv6,但是需要WSAStartup: 一种只能取到IPv4,但是不需要WSAStartup: 如下: 方法一:(可以获取IPv4和I ...
- IPv4 和 IPv6地址
目前Internet上使用的基本都是IPv4地址,也就是说地址总共是32个比特位,也就是32位二进制数. 所以IPv4地址总的容量是 2的32次方 = 4294967296 比如 11010010 ...
- 套接字编程简介: IPV4套接字地址结构/ 通用套接字地址结构/ IPV6套接字地址结构/新通用套接字地址结构
IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中. struct in_addr { in_addr_t ...
随机推荐
- 用 React 编写移动应用 React Native
转载:用 React 编写移动应用 React Native ReactNative 可以基于目前大热的开源JavaScript库React.js来开发iOS和Android原生App.而且React ...
- poj3349(hash table)
做的第一道哈希表的题目.速度很慢,跑了3000+ms.采用六条边的和对一个大质数的余数作为哈希表的key,理论上质数取得越大,消耗的空间就越大,但是速度会加快,这里取了14997.地址冲突用链表解决. ...
- modernizr.js的介绍和使用
原文链接:https://www.cnblogs.com/-simon/p/5907053.html Modernizr帮助我们检测浏览器是否实现了某个feature,如果实现了那么开发人员就可以充分 ...
- LINUX按键驱动程序
<<混杂设备驱动模型>> <混杂设设备的描述> <混在设备的概念> 在linux系统中,存在一类字符设备,他们拥有相同的主设备号(10),但是次设备号不 ...
- BZOJ 4003: [JLOI2015]城池攻占 左偏树 可并堆
https://www.lydsy.com/JudgeOnline/problem.php?id=4003 感觉就是……普通的堆啊(暴论),因为这个堆是通过递归往右堆里加一个新堆或者新节点的,所以要始 ...
- 【Python3】【树形dp】uva10253 Series-Parallel Networks
设“共n个叶子,且每个非叶节点至少有两个子节点”的树的数量为f[n],再乘2就是本题答案. 设状态d(i,j)表示每棵子树最多包含i个叶子.一共有j个叶子的树的个数.于是f(n)=d(n-1,n).假 ...
- .net mvc控制器传递方法到视图
很多人都是在视图里面定义方法,然后再使用.我个人也是这么干的.但是为了验证是否可以将方法从控制器传递到视图,所以做了个测试.结果真的可以.原理是利用了委托(delegate),因为委托本身就是一种类型 ...
- mysql反向解析导致连接缓慢
Content 0.序 1.问题 2.原因 3.解决办法 0.序 本文主要是记录Mysql安装在 VMWARE下,本地连接Mysql速度很慢的原因及解决办法. 1.问题 本地的一个网站使用mysql数 ...
- service redis does not support chkconfig 的解决办法
问题解决办法如下: 必须把下面两行注释放在/etc/init.d/redis文件靠前的注释中(加入以下注释): # chkconfig: # description: Redis is a persi ...
- cocos2d-x3.0 macOS下配置Android开发环境以及使用cocos2d-console来新建执行project
下面是子龙山人录制的关于cocos2d-x3.0的视频教程,macOS下配置Android开发环境.使用cocos2d-console来新建执行project.怎样执行cocos2d-x 3.0win ...