热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

cssjs写在一起vue_vue.js核心知识点:6.1十个常用的自定义过滤器,必须会用会写!...

问题一:vue-cli工作中如何自定义一个过滤器?文件结构:.├──src│├──filter││├──filter.js│││└──ma
问题一:vue-cli 工作中如何自定义一个过滤器?

文件结构:


.├── src│ ├── filter│ │ ├── filter.js│ │ │ └── main.js└── ...

过滤器们放在filter文件夹下


filter/filter.js:


这个文件主要是写了过滤器实现的方法,然后export进行导出。

function filterOne(n){ return n + 10;}function filterTwo(n){ return n + 5;}export{ filterOne, filterTwo}


main.js:


// 找 filter/filter.jsimport * as filters from './filter/filter.js'//遍历所有导出的过滤器并添加到全局过滤器Object.keys(filters).forEach((key) => { Vue.filter(key, filters[key]);})


在 .vue 组件下使用


{{ test | filterOne }}问题二:vue-cli工作中常用的过滤器

在 .vue 组件中的使用示例:

{{ string | trim(1) }} // 去除所有空格,过滤器第一个参数为value

常用的过滤器,filter/filter.js

// 去除空格function trim(value, trim) { switch (trim) { case 1: return value.replace(/s&#43;/g, ""); // 所有空格 case 2: return value.replace(/(^s*)|(s*$)/g, ""); // 前后空格 case 3: return value.replace(/(^s*)/g, ""); // 前空格 case 4: return value.replace(/(s*$)/g, ""); // 后空格 default: return value; }}//任意格式日期处理//使用格式&#xff1a;// {{ &#39;2018-09-14 01:05&#39; | formaDate(yyyy-MM-dd hh:mm:ss) }} // {{ &#39;2018-09-14 01:05&#39; | formaDate(yyyy-MM-dd) }} // {{ &#39;2018-09-14 01:05&#39; | formaDate(MM/dd) }} 等function formaDate(value, fmt) { var date &#61; new Date(value); var o &#61; { "M&#43;": date.getMonth() &#43; 1, //月份 "d&#43;": date.getDate(), //日 "h&#43;": date.getHours(), //小时 "m&#43;": date.getMinutes(), //分 "s&#43;": date.getSeconds(), //秒 "w&#43;": date.getDay(), //星期 "q&#43;": Math.floor((date.getMonth() &#43; 3) / 3), //季度 "S": date.getMilliseconds() //毫秒 }; if (/(y&#43;)/.test(fmt)) fmt &#61; fmt.replace(RegExp.$1, (date.getFullYear() &#43; "").substr(4 - RegExp.$1.length)); for (var k in o) { if(k &#61;&#61;&#61; &#39;w&#43;&#39;) { if(o[k] &#61;&#61;&#61; 0) { fmt &#61; fmt.replace(&#39;w&#39;, &#39;周日&#39;); }else if(o[k] &#61;&#61;&#61; 1) { fmt &#61; fmt.replace(&#39;w&#39;, &#39;周一&#39;); }else if(o[k] &#61;&#61;&#61; 2) { fmt &#61; fmt.replace(&#39;w&#39;, &#39;周二&#39;); }else if(o[k] &#61;&#61;&#61; 3) { fmt &#61; fmt.replace(&#39;w&#39;, &#39;周三&#39;); }else if(o[k] &#61;&#61;&#61; 4) { fmt &#61; fmt.replace(&#39;w&#39;, &#39;周四&#39;); }else if(o[k] &#61;&#61;&#61; 5) { fmt &#61; fmt.replace(&#39;w&#39;, &#39;周五&#39;); }else if(o[k] &#61;&#61;&#61; 6) { fmt &#61; fmt.replace(&#39;w&#39;, &#39;周六&#39;); } }else if (new RegExp("(" &#43; k &#43; ")").test(fmt)) { fmt &#61; fmt.replace(RegExp.$1, (RegExp.$1.length &#61;&#61; 1) ? (o[k]) : (("00" &#43; o[k]).substr(("" &#43; o[k]).length))); } } return fmt; }//字母大小写切换/*type 1:首字母大写 2&#xff1a;首页母小写 3&#xff1a;大小写转换 4&#xff1a;全部大写 5&#xff1a;全部小写 * */function changeCase(str, type) { function ToggleCase(str) { var itemText &#61; "" str.split("").forEach( function (item) { if (/^([a-z]&#43;)/.test(item)) { itemText &#43;&#61; item.toUpperCase(); } else if (/^([A-Z]&#43;)/.test(item)) { itemText &#43;&#61; item.toLowerCase(); } else { itemText &#43;&#61; item; } }); return itemText; }switch (type) { case 1: return str.replace(/bw&#43;b/g, function (word) { return word.substring(0, 1).toUpperCase() &#43; word.substring(1).toLowerCase(); }); case 2: return str.replace(/bw&#43;b/g, function (word) { return word.substring(0, 1).toLowerCase() &#43; word.substring(1).toUpperCase(); }); case 3: return ToggleCase(str); case 4: return str.toUpperCase(); case 5: return str.toLowerCase(); default: return str; }}//字符串循环复制,count->次数function repeatStr(str, count) { var text &#61; &#39;&#39;; for (var i &#61; 0; i 0; i&#43;&#43;) { var p &#61; &#39;&#39;; for (var j &#61; 0; j 0; j&#43;&#43;) { p &#61; digit[n % 10] &#43; unit[1][j] &#43; p; n &#61; Math.floor(n / 10); } s &#61; p.replace(/(零.)*零$/, &#39;&#39;).replace(/^$/, &#39;零&#39;) &#43; unit[0][i] &#43; s; //s &#61; p &#43; unit[0][i] &#43; s; } return head &#43; s.replace(/(零.)*零元/, &#39;元&#39;).replace(/(零.)&#43;/g, &#39;零&#39;).replace(/^整$/, &#39;零元整&#39;);} //保留2位小数function toDecimal2(x){ var f &#61; parseFloat(x); if (isNaN(f)) { return false; } var f &#61; Math.round(x * 100) / 100; var s &#61; f.toString(); var rs &#61; s.indexOf(&#39;.&#39;); if (rs <0) { rs &#61; s.length; s &#43;&#61; &#39;.&#39;; } while (s.length <&#61; rs &#43; 2) { s &#43;&#61; &#39;0&#39;; } return s;}export{trim, changeCase, repeatStr, replaceAll, replaceStr, checkPwd, formatText, upDigit, toDecimal2, formaDate}

编辑器效果&#xff1a;

9b1138d830ff1666507b14af4dd205ba.png



推荐阅读
  • vue使用
    关键词: ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • React项目中运用React技巧解决实际问题的总结
    本文总结了在React项目中如何运用React技巧解决一些实际问题,包括取消请求和页面卸载的关联,利用useEffect和AbortController等技术实现请求的取消。文章中的代码是简化后的例子,但思想是相通的。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 本文介绍了如何使用vue-awesome-swiper组件,包括在main.js中引入和使用swiper和swiperSlide组件,以及设置options和ref属性。同时还介绍了如何在模板中使用swiper和swiperSlide组件,并展示了如何通过循环渲染swipes数组中的数据,并使用picUrl属性显示图片。最后还介绍了如何添加分页器。 ... [详细]
  • 本文介绍了如何使用elementui分页组件进行分页功能的改写,只需一行代码即可调用。通过封装分页组件,避免在每个页面都写跳转请求的重复代码。详细的代码示例和使用方法在正文中给出。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
author-avatar
书友66421539
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有