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

vue3中,校验方法之身份证号脱敏、校验数字长度、特殊字符校验

vue3中,校验方法之身份证号脱敏、校验数字长度、特殊字符校验

效果

2860 //身份证号脱敏 

代码

身份证号脱敏

index.vue

import { 
    idCardEncipher } from '@src/utils/jiaoyan' row.idCard = idCardEncipher(row.idCard) 

方法

src\utils\jiaoyan.ts

// 校验数字 export function validateNumberFun(rule: any, value: any, callback: any) { 
    if (value || rule.required) { 
    const v = value || '' const pattern = /^[0-9]{1,8}$/ if (!pattern.test(v)) { 
    callback(new Error('请输入1-8位数字')) } else { 
    callback() } } else { 
    callback() } } // 路由地址 export function validateCommonPath(value: any, callback: any) { 
    const commonNoChars = '~!@#$%^&*()_+|}{":?><,.;' + '’[]\\=-` ' const noChars = commonNoChars const v = value || '' for (let i = 0; i < noChars.length; i++) { 
    const char = noChars[i] if (v.indexOf(char) != -1) { 
    callback(new Error('不能使用字符:' + noChars)) return } } } //特殊字符校验 export function validateCommonText(value: any, callback: any) { 
    const commonNoChars = '~!@#$%^&*()_+|}{":?><,./;' + '’[]\\=-` ' const noChars = commonNoChars const v = value || '' for (let i = 0; i < noChars.length; i++) { 
    const char = noChars[i] if (v.indexOf(char) != -1) { 
    callback(new Error('不能使用字符:' + noChars)) return } } const words = ['null', 'NULL'] for (let i = 0; i < noChars.length; i++) { 
    const word = words[i] if (v.indexOf(word) != -1) { 
    callback(new Error('不能包含: ' + word)) return } } callback() } //校验数字12位字符 export function validateNumberTW(rule: any, value: any, callback: any) { 
    if (value || rule.required) { 
    const v = value || '' const pattern = /^[0-9]{1,12}$/ if (!pattern.test(v)) { 
    callback(new Error('请输入1-12位数字')) } else { 
    callback() } } else { 
    callback() } } // 自定义校验销售组织不能为空 export function validateNull(rule: any, value: any, callback: any) { 
    if (value || rule.required) { 
    const v = value || '' const len = String(v).length if (len == 2) { 
    callback(new Error('销售组织不能为空')) } else { 
    callback() } } else { 
    callback() } } // 金额小数点 export function validateNumberF(rule: any, value: any, callback: any) { 
    if (value || rule.required) { 
    const v = value || '' const len = String(v).length // const pattern = /(^[1-9]{1}[0-9]*$)|(^[0-9]*\.[0-9]{2}$)/ if (!len || len > 15) { 
    callback(new Error('请输入1-15位数字')) } else if (!/^\d+([.]+\d{1,2})?$/.test(v)) { 
    callback(new Error('请输入正确金额')) } else { 
    callback() } } else { 
    callback() } } export function validateNumberCharacters(rule: any, value: any, callback: any) { 
    if (value || rule.required) { 
    const v = value || '' const pattern = /^[0-9a-zA-Z]*$/ if (!pattern.test(v)) { 
    callback(new Error('请输入字母+数字组合')) } else { 
    callback() } } else { 
    callback() } } //身份证号脱敏 export const idCardEncipher = (idCard) => { 
    const reg = /^(.{6})(?:\d+)(.{4}$)/ const maskedIdCard = idCard.replace(reg,'\$1\$2') return maskedIdCard } 
特殊字符校验

index.vue

 <el-form-item label="项目名称:" prop="item_name" :rules="[ { validator: validateCommonText, trigger: ['blur', 'change'], }, ]" > <el-input v-model="formInline.item_name" maxlength="100" placeholder="请输入" /> </el-form-item> <script> import { validateCommonText } from '@src/utils/validate' </script> 

src\utils\validate.ts

/ * 中文 + 字母 + 数字 + "-" 的组合 * @param {*} rule * @param {*} value * @param {*} callback */ export function validateRoleRuler(rule: any, value: any, callback: any) { 
    const v = value || '' const commonNoChars = '~!@#$%^&*()+|}{":?><,./;' + '’[]\\=` ' const pattern = /[~!@#$%^&*()_+|}{":?><,./\\;'[\]=` 、]|([Nn][Uu][Ll][Ll])/ if (pattern.test(v)) { 
    callback(new Error('不能使用' + commonNoChars)) return } callback() } / * @description 特定字符校验 * @param value * @returns {boolean} */ export function validateCommonText(rule: any, value: any, callback: any) { 
    const commonNoChars = '~!@#$%^&*()+|}{":?><,./;' + '_’[]\\=-` ' const noChars = commonNoChars const v = value || '' for (let i = 0; i < noChars.length; i++) { 
    const char = noChars[i] if (v.indexOf(char) != -1) { 
    // callback(new Error('不能使用字符:' + noChars)) callback(new Error('不能使用特殊字符')) return } } 
到此这篇vue3中,校验方法之身份证号脱敏、校验数字长度、特殊字符校验的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • vue3中,form表单校验之特殊字符校验、手机号、身份证号、百分制数字 & route和router的写法 & setup的两种用法 & rules中校验之blur和change2024-11-27 21:09:05
  • vue3中,下载模板(一)2024-11-27 21:09:05
  • vue3中,下载模板(二)——file流文件处理-简约版 & 接口responseType-blob2024-11-27 21:09:05
  • vue3中,下载模板(三)——前端本地下载附件2024-11-27 21:09:05
  • vue3中,下载模板并进行上传导入文件 & 父子组件props传函数两种写法-传动态接口2024-11-27 21:09:05
  • js实现页面跳转链接的几种方式2024-11-27 21:09:05
  • js将数字转换成万、亿、万亿2024-11-27 21:09:05
  • js中,删除arr1中比arr2中多的对象之filter、find & 数组中是否有相同对象之every、some & 删除数组中不是相同的对象 & 对象数组,去重后合并2024-11-27 21:09:05
  • js之对象数组操作——添加到数组中、删除非同对象、非同对象参数置空2024-11-27 21:09:05
  • vue中,js封装方法之判断js对象类型 & 封装方法之js对象深拷贝2024-11-27 21:09:05
  • 全屏图片