当前位置:网站首页 > Vue.js开发 > 正文

vue3进阶(二)-封装utils方法——禁止输入框特殊字符校验 & form表单特定字符校验 & 自定义指令app.directive之防抖指令v-throttle

vue3进阶(二)-封装utils方法——禁止输入框特殊字符校验 & form表单特定字符校验 & 自定义指令app.directive之防抖指令v-throttle

4、引用的校验方法

src\utils\validate.ts

// 禁止输入框特殊字符校验  export function replaceCommonText(e: any) { 
    if (!checkSpecificKeyWord(e)) { 
    // 提交关键字 ElMessage({ 
    message: '不能包含关键词: ' + wordKey, type: 'warning', }) const y = e.replace(wordKey, '') return y } else { 
    const str = e.replace( /[`~!@#$%^&*()_\-+=<>?:"{}|,./;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“” ]/g, '' ) const y = str.replace(/\s+/g, '') return y } } / * @description form表单特定字符校验 * @param value * @returns {boolean} */ export function validateCommonText(rule: any, value: any, callback: any) { 
    const noChars = "[`~!#$^&*\"()=|{}': ; ',\\[\\].<>/?~!#¥……&*()——|{}【】‘;:”“'。,、?]‘'@ /%" const v = value || '' for (let i = 0; i < noChars.length; i++) { 
    const char = noChars[i] if (v.indexOf(char) != -1) { 
    callback(new Error('不能使用特殊字符')) return } } 
使用教程

特殊字符校验

  1. 介绍:输入框禁止输入特殊字符

第一步引入:

import { replaceCommonText } from '@src/utils/validate' 

第二步页面应用:

<el-input v-model.trim="formInline.prjName" @input="(e) => (formInline.prjName = replaceCommonText(e))"/> 
  1. 介绍:form 表单特殊字符验证

第一步引入:

import { 
    validateCommonText } from '@src/utils/validate' 

第二步在 rules 校验中用法:

 { 
    validator: validateCommonText, trigger: 'blur' }, 

公共方法

全局防抖 - 添加防抖指令

<el-button v-throttle="3000" > 保存 </el-button> 
防抖方法

library\plugins\directive.ts

import type { 
    DirectiveBinding } from 'vue' export function setup(app: any) { 
    / * @description 自定义指令v-throttle */ app.directive('throttle', { 
    mounted(el: any, binding: DirectiveBinding) { 
    let { 
    throttleTime } = binding.value if (!throttleTime) { 
    throttleTime = 1000 } let timer: any let disable = false el.addEventListener( 'click', (event: any) => { 
    if (timer) { 
    clearTimeout(timer) } if (!disable) { 
    disable = true } else { 
    event && event.stopImmediatePropagation() } timer = setTimeout(() => { 
    timer = null disable = false }, throttleTime) }, true ) }, }) } 
到此这篇vue3进阶(二)-封装utils方法——禁止输入框特殊字符校验 & form表单特定字符校验 & 自定义指令app.directive之防抖指令v-throttle的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • vue3进阶(三)——el-tabs标签页组件的使用& 设置sessionStorage.setItem()、获取sessionStorage.getItem()& router.push()跳转页面2024-11-30 21:09:07
  • vue2中,promise.all调用接口的用法2024-11-30 21:09:07
  • axios配置多个接口请求(一)——vue项目axios配置多个接口请求2024-11-30 21:09:07
  • axios配置多个接口请求(三)——vue项目axios配置多个IP地址,并配置多个接口请求2024-11-30 21:09:07
  • axios配置多个接口请求(四)——vue项目axios配置多个IP地址,并配置多个接口请求2024-11-30 21:09:07
  • vue3进阶(一)——Promise.all请求多个接口的写法& 表单必填校验后再保存或提交 & @import url导入公共样式& module.exports定义对象和require导入js文件2024-11-30 21:09:07
  • js中try、catch、finally、then使用 & 提交时校验form表单-valid & deep样式权重 & @import url(之导入公用样式& useRoute和useRouter2024-11-30 21:09:07
  • vue3封装表格弹框组件——表格单选、axios动态接口、toRefs()用法、loading自定义、表格内容超出高度滚动2024-11-30 21:09:07
  • vue3中,表格导出excel、批量操作表格、分页、loading、router.push跳转2024-11-30 21:09:07
  • vue3中,下载模板并进行上传导入文件 & 父子组件props传函数两种写法-传动态接口2024-11-30 21:09:07
  • 全屏图片