当前位置: 首页 > article >正文

前端开发中的常用工具函数解析与应用

前端开发常用工具函数解析

在前端开发中,常常需要对输入的内容或参数进行各种验证与判断,以确保数据的有效性和安全性。本文将对一些常用的工具函数进行解析,帮助大家更好地理解和使用这些方法。

1. 判断URL是否是httphttps
/**
 * 判断url是否是http或https 
 * @param {string} url
 * @returns {Boolean}
 */
export function isHttp(url) {
  return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1
}

isHttp函数用于判断传入的URL是否以http://https://开头。这对于验证用户输入的URL是否为合法的网络地址非常有用,尤其是在处理链接、API请求等场景中。

2. 判断路径是否为外链
/**
 * 判断path是否为外链
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

isExternal函数通过正则表达式判断路径是否以http://https://mailto:tel:开头,这意味着该路径是一个外部链接。这个函数通常用于区分内部链接和外部链接,以便做出不同的处理,比如跳转或新窗口打开。

3. 验证用户名是否合法
/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validUsername(str) {
  const valid_map = ['admin', 'editor']
  return valid_map.indexOf(str.trim()) >= 0
}

validUsername函数用于验证用户名是否符合规定的标准(例如是否是admineditor)。该函数主要用于一些具有权限管理的系统,确保只有预设的用户才能登录。

4. 验证URL是否有效
/**
 * @param {string} url
 * @returns {Boolean}
 */
export function validURL(url) {
  const reg = /^(https?|ftp)://([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+.)*[a-zA-Z0-9-]+.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(/($|[a-zA-Z0-9.,?'\+&%$#=~_-]+))*$/
  return reg.test(url)
}

validURL函数通过正则表达式验证URL的有效性。它判断URL是否符合http(s)协议,并且符合标准的域名、路径、端口和查询参数等格式。常用于表单验证或后端接口请求时检查传入的URL是否有效。

5. 验证字符串是否为小写字母
/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validLowerCase(str) {
  const reg = /^[a-z]+$/
  return reg.test(str)
}

validLowerCase函数用于验证字符串是否为全小写字母。对于一些需要区分大小写的场景,比如密码验证、用户名格式要求等,这个函数会特别有用。

6. 验证字符串是否为大写字母
/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validUpperCase(str) {
  const reg = /^[A-Z]+$/
  return reg.test(str)
}

validUpperCase函数与validLowerCase类似,不过它是用于验证字符串是否为全大写字母。在一些需要验证大写字母的场景下,比如要求密码中包含大写字母时,可以使用此函数。

7. 验证字符串是否为字母
/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validAlphabets(str) {
  const reg = /^[A-Za-z]+$/
  return reg.test(str)
}

validAlphabets函数用于验证字符串是否只包含字母。它支持大小写字母,对于一些只允许字母输入的表单字段,或需要验证姓名、昵称等场景中,都会使用到。

8. 验证Email地址格式
/**
 * @param {string} email
 * @returns {Boolean}
 */
export function validEmail(email) {
  const reg = /^(([^<>()[]\.,;:\s@"]+(.[^<>()[]\.,;:\s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/
  return reg.test(email)
}

validEmail函数用于验证Email地址的格式是否合法。常用于表单中用户注册或修改邮箱时,确保输入的Email地址符合标准格式。

9. 判断输入是否为字符串
/**
 * @param {string} str
 * @returns {Boolean}
 */
export function isString(str) {
  if (typeof str === 'string' || str instanceof String) {
    return true
  }
  return false
}

isString函数用于判断一个值是否为字符串类型。在处理不同类型的数据时,我们常常需要确保某个变量是字符串类型,避免出现类型错误。

10. 判断输入是否为数组
/**
 * @param {Array} arg
 * @returns {Boolean}
 */
export function isArray(arg) {
  if (typeof Array.isArray === 'undefined') {
    return Object.prototype.toString.call(arg) === '[object Array]'
  }
  return Array.isArray(arg)
}

isArray函数用于判断输入是否为数组。虽然JavaScript提供了原生的Array.isArray()方法,但为了兼容老旧浏览器(如IE),我们通常需要写一个兼容性的判断。

总结

这些工具函数在前端开发中非常常见且实用,它们帮助我们简化了数据验证和类型判断的过程,减少了代码重复性,提升了开发效率。无论是在表单验证、数据处理,还是链接判断中,这些函数都能派上用场,尤其是在处理用户输入、外部数据交互以及安全性验证时。


http://www.kler.cn/a/456996.html

相关文章:

  • Java中实现对象的深拷贝(Deep Copy)
  • android studio gradle 如何解决下载依赖一直卡住的问题
  • 手机h5加桌面图标
  • 一份完整的营销策划包含哪些内容?营销策划主要内容和流程--中小企实战运营和营销工作室博客
  • 怎么在家访问公司服务器?
  • 短视频平台的视频水印怎么去除?
  • 实时计算Flink版
  • 有一个4*5的矩阵如下,要求编写程序计算总和与平均值,并找出其中值最大的那个元素输出,以及其所在的行号和列号。
  • Flink Data Source详解
  • Cookie+Redis+自定义参数解析器+AOP+自定义校验注解实现鉴权+改动CustomException
  • windows C#-嵌套类型
  • 原点安全再次入选信通院 2024 大数据“星河”案例
  • 【Linux学习六】压缩和解压类
  • 安装宝塔面板 安装MySQL 使用DataGrip连接
  • IDEA开发Java应用的初始化设置
  • Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程
  • Android 版本号、代号、API级别对应关系汇总
  • 【Unity Shader】【图形渲染】 Shader数学基础14:裁剪空间
  • 在K8S中,nodePort默认端口范围是多少?为什么是这个端口范围?
  • 【go每日一题】 责任链模式的实现
  • 学习C++:运算符
  • 【PSINS】EKF、UKF、CKF三个滤波下的组合导航(松组合)对比
  • 面向对象的设计原则与设计模式
  • HuggingFace peft LoRA 微调 LLaMA
  • Mysql数据库中,监测某张表中某字段的修改情况(被哪个ip所修改、新老值)
  • InceptionNeXt: When Inception Meets ConvNeXt