首页 > 其他分享 >js校验IPv4/IPv6/域名/url等相关正则

js校验IPv4/IPv6/域名/url等相关正则

时间:2023-07-26 14:55:52浏览次数:36  
标签:function val url 校验 js Fa IPv4 reg 9A

/**
 * 域名校验 eg: www.baidu.com
 * @param {*} val 需要校验的值
 */
export function isDomain(val) {
  const reg = /^([0-9a-zA-Z-]{1,}\.)+([a-zA-Z]{2,})$/;
  return reg.test(val);
}

/**
 * ipv4校验 eg: 10.0.0.1
 * @param {*} val 需要校验的值
 */
export function isIpv4(val) {
  const reg = /^(?!0)(?:[0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(?:[0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(?:[0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(?:[0-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$/;
  return reg.test(val);
}

/**
 * ipv6校验 eg: 1234::
 * @param {*} val 需要校验的值
 */
export function isIpv6(val) {
  var ipv6Regex = /^(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}|([0-9A-Fa-f]{1,4}:){1,7}:|([0-9A-Fa-f]{1,4}:){1,6}:[0-9A-Fa-f]{1,4}|([0-9A-Fa-f]{1,4}:){1,5}(:[0-9A-Fa-f]{1,4}){1,2}|([0-9A-Fa-f]{1,4}:){1,4}(:[0-9A-Fa-f]{1,4}){1,3}|([0-9A-Fa-f]{1,4}:){1,3}(:[0-9A-Fa-f]{1,4}){1,4}|([0-9A-Fa-f]{1,4}:){1,2}(:[0-9A-Fa-f]{1,4}){1,5}|[0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){1,6}|:((:[0-9A-Fa-f]{1,4}){1,7}|:)|::)$/;
  return ipv6Regex.test(val);
}

/**
 * 有https或http加ipv4构成的url校验 eg: http://172.16.100.12 或 http://172.16.100.12:8087
 * @param {*} val 需要校验的值
 */
export function isIpv4Url(val) {
  const reg = /^(https?:\/\/)(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::\d{1,5})?(?:[/?#]\S*)?$/;
  return reg.test(val);
}
/**
 * 有https或http加域名构成的url校验 eg: http://www.aa.com
 * @param {*} val 需要校验的值
 */
export function isDomainUrl(val) {
  const reg = /^(https?:\/\/)([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,6}(\/\S*)?$/;
  return reg.test(val);
}
/**
 * 有https或http加ipv6构成的url校验 eg: https://[2001:db8::1:2] 或 https://[2001:db8::1:2]:8000
 * @param {*} val 需要校验的值
 */
export function isIpv6Url(val) {
  const reg = /^(https?:\/\/)\[[0-9a-fA-F:]+\](:\d{1,5})?(\/\S*)?$/;
  return reg.test(val);
}
/**
 * ipv4加端口 校验 eg: 172.16.100.12:8087
 * @param {*} val 需要校验的值
 */
export function isIpv4AndPort(val) {
  const reg = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::\d{1,5})$/;
  return reg.test(val);
}
/**
 * 域名加端口 校验 eg: www.aa.com:80
 * @param {*} val 需要校验的值
 */
export function isDomainAndPort(val) {
  const reg = /^([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,6}(?::\d{1,5})$/;
  return reg.test(val);
}

/**
 * ipv6加端口 校验 eg: [2001:db8::1:2]:8000
 * @param {*} val 需要校验的值
 */
export function isIpv6AndPort(val) {
  const reg = /^\[[0-9a-fA-F:]+\](:\d{1,5})$/;
  return reg.test(val);
}

 

标签:function,val,url,校验,js,Fa,IPv4,reg,9A
From: https://www.cnblogs.com/cyf666cool/p/17582450.html

相关文章

  • Node.js低代码管理系统:只需点击鼠标,搭建属于你的企业应用
    低代码管理系统是一种通过可视化界面和简化的开发工具,使非专业开发人员能够快速构建和管理应用程序的系统。它提供了一套预先定义的组件和模块,使用户可以通过拖放操作来设计应用程序的界面和逻辑。低代码管理系统还提供了自动化的工作流程、数据管理和集成功能,使用户能够快速创建和......
  • EaselJS 源码分析系列--第四篇
    鼠标交互事件前几篇关注的是如何渲染,那么鼠标交互如何实现呢?Canvascontext本身没有像浏览器DOM一样的交互事件EaselJS如何在canvas内实现自己的鼠标事件系统?原理大致如下:Stage类内的canvas监听标准DOM鼠标事件(比如:mousedown),window或document对象下监听......
  • Njs 0.8.0发布
    导读Njs0.8.0发布,分为nginx模块和核心进行介绍。nginx模块更改:删除了0.7.10版本中引入的FetchAPI中对禁止的头信息的特殊处理。更改:删除了http模块中自0.5.0以来废弃的r.requestBody()和r.responseBody()。更改:在http模块中过滤时,在r.internalRedirect()中抛出一......
  • 转载:PageOffice在线打开office文件通过js调用vba可实现的功能
    pageoffice封装的js接口有限,某些比较复杂的设置用到的客户不多,所以没有提供直接的js方法,但是pageoffice提供了Document属性和RunMacro方法,可以调vba或直接运行宏指令实现比较小众的一些需求   Word相关功能1、给word表格中的单元格赋值document.getElementById("Page......
  • Using PL/SQL Object Types for JSON
    #https://docs.oracle.com/en/database/oracle/oracle-database/12.2/adjsn/using-PLSQL-object-types-for-JSON.html#GUID-F0561593-D0B9-44EA-9C8C-ACB6AA9474EEDECLAREjeJSON_ELEMENT_T;joJSON_OBJECT_T;BEGINje:=JSON_ELEMENT_T.parse('{"name......
  • 30 天精通 RxJS (02):Functional Programming 基本观念
    FunctionalProgramming是Rx最重要的观念之一,基本上只要学会FP要上手Rx就不难了!FunctionalProgramming可以说是近年来的显学,各种新的函式编程语言推出之外,其他旧有的语言也都在新版中加强对FP的支持!什么是FunctionalProgramming?FunctionalProgramming是一种编程......
  • [爬虫]2.2.2 使用PhantomJS处理JavaScript
    PhantomJS是一个无头(headless)浏览器,它可以解析和执行JavaScript,非常适合用于爬取动态网页。"无头"意味着它可以在没有用户界面的情况下运行,这对于服务器环境和自动化任务非常有用。安装PhantomJS首先,你需要下载并安装PhantomJS。你可以从官方网站下载↗适合你的操作系统的版本......
  • xpath丶BeautifulSoup丶pyquery丶jsonpath 解析html与json串
    XPath与jsonpath1importjson2fromlxmlimportetree3fromjsonpathimportjsonpath45defjson_test():6str1='{"name":"埃里克森"}'7#将字符串转为Pythondict对象8js_obj=json.loads(str1)9print(typ......
  • js将时间段自定义间隔分为时间段、将时间秒转为时-分-秒格式
    实现场景:8:00-12:00上课,每节课45分钟,课间10分钟,获取上课时间段结果://调用方法获取时间区间总方法入口gettimearr(gettimesecond(“8:00:00”),gettimesecond("12:00:00"),45*60,10*60);/***将时间转为秒*@param{any}date传入时间格式(字符串):8:00:00......
  • web前端tips:js继承——原型链继承
    原型链继承原型链继承是JavaScript中实现继承的一种方式,它通过使用原型来实现对象之间的继承关系。在JavaScript中,每个对象都有一个原型(prototype),它是一个指向另一个对象的引用。当我们访问一个对象的属性时,如果该对象自身没有该属性,则会去它的原型上查找,如果原型上也没有,则......