v-model中如何使用过滤器

 更新时间:2023年10月08日 14:29:54   作者:习惯是一种病  
这篇文章主要介绍了v-model中如何使用过滤器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

v-model中使用过滤器

v-model不能使用过滤器(filter)的替代或者解决方法;

如图:

页面中有v-model需要在输入时验证格式的时候(<input v-model='price' />)

官方给出的方法是使用computed,但是多个框时computed不能很好的复用;

使用input事件,通过传值验证输入框中的内容,

直接上代码:

<input v-model="price" @input="priceFormat('price',price)"/>
data(){
    return {
       price:'',//价钱
    }
},
methods: {
    /*价格过滤
     *data:对应data中的名称,是字符串,val:对应data中的值
    */
    priceFormat(data,val){
         if(!/^\d*?\.?\d*?$/.test(val)){
             this[data]='';//修改data中的价钱为空
          }
     }
}

v-model或者v-text中使用过滤器进行脱敏不生效问题

vue.js允许我们自定义过滤器,可以用来处理一些常用的文本格式化,但是过滤器只能用在两个地方,双括弧插值({{}})v-bind 表达式(后者聪vue2.1.0+才开始支持),并且filter应该被定义在js表达式的尾部,通常放在vue框架的methods下面;

但是有时候我们需要在v-model/v-text中使用脱敏,这里分别提供两种方法:

1.使用v-model进行过滤器脱敏

<template>
 <div id="app">
  <input type="text" v-model="userDate" />  
  <span>{{ userDate | dateFormat }}</span>
 </div>
</template>

其中,v-model用来进行双向绑定,下面的双括弧用来进行脱敏显示;

2.手动将关键部位进行截取加*脱敏

<div class="cuzu" v-show="cuzu">
				<div class="formName formSlect">
					<h1>出租人姓名</h1>
					<input type="text" id="lessorName" v-model="Tname" disabled="disabled">
					<div class="clearFix"></div>
				</div>
				<div class="formName formSlect">
					<h1>出租人证件号</h1>
					<input type="text" id="lessorCode"  v-model="Tidcard" disabled="disabled">
					<div class="clearFix"></div>
				</div>
			</div>
//这里用来传递实参运算
        _this.name = res.userdetail.name;
        _this.idcard = res.userdetail.papersnumber;
        //身份证脱敏处理
        info.Tidcard = res.userdetail.papersnumber.substring(0, 1) + "****************" + res.userdetail.papersnumber.substring(17, 18);
        //姓名脱敏处理
        info.Tname = "*" + res.userdetail.name.slice(1);

这里v-model拿到后台截取加*后的参数进行脱敏展示。

获取到用户信息后对名字(2/3/4个字)进行脱敏

_this.name = res.userdetail.name;
		if (_this.name.length == 2) {
			_this.yhmc = _this.name.slice(0, 1) + "*";
		} else if (_this.name.length == 3) {
			_this.yhmc = _this.name.slice(0, 1) + "**";
		}
		else {
			_this.yhmc = _this.name.slice(0, 1) + "***";
		}

3.定义一个方法进行脱敏处理

changeCardid: function (value) {
			if (!value) return ''
			//return value.replace(/(\w{3})\w*(\w{4})/, '$1******$2')
			return value.replace(/(\w{1})\w*(\w{1})/, '$1****************$2')
		},
		changeName: function (value) {
			if (!value) return ''
			else {
				if (value.length == 3) {
					return value.substr(0, 1) + "**"
				} else if (value.length == 2) {
					return value.substr(0, 1) + "*"
				} else {
					return value.substr(0, 1) + "***"
				}
			}
		}

然后在v-model中直接调用我们声明的脱敏方法,changeName(name)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue父子组件之间的传参的几种方式小结

    vue父子组件之间的传参的几种方式小结

    本文主要介绍了vue父子组件之间的传参的几种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • vue template中slot-scope/scope的使用方法

    vue template中slot-scope/scope的使用方法

    今天小编就为大家分享一篇vue template中slot-scope/scope的使用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue日历/日程提醒/html5本地缓存功能

    vue日历/日程提醒/html5本地缓存功能

    这篇文章主要介绍了vue日历/日程提醒/html5本地缓存功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 基于Vue实现消息提示功能

    基于Vue实现消息提示功能

    这篇文章主要为大家详细介绍了如何基于Vue实现简单的消息提示功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-10-10
  • 使用live-server快速搭建本地服务器+自动刷新的方法

    使用live-server快速搭建本地服务器+自动刷新的方法

    下面小编就为大家分享一篇使用live-server快速搭建本地服务器+自动刷新的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • vue中的循环对象属性和属性值用法

    vue中的循环对象属性和属性值用法

    这篇文章主要介绍了vue中的循环对象属性和属性值用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Vue-CLI 3.X 部署项目至生产服务器的方法

    Vue-CLI 3.X 部署项目至生产服务器的方法

    这篇文章主要介绍了Vue-CLI 3.X 部署项目至生产服务器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Vue动态组件component的深度使用说明

    Vue动态组件component的深度使用说明

    这篇文章主要介绍了Vue动态组件component的深度使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue+Element UI 实现视频上传功能

    Vue+Element UI 实现视频上传功能

    这篇文章主要介绍了Vue+Element UI 实现视频上传功能,前台使用Vue+Element UI中的el-upload组件实现视频上传及进度条展示,后台提供视频上传API并返回URL,具体实现代码及效果展示跟随小编一起看看吧
    2022-01-01
  • 解决$store.getters调用不执行的问题

    解决$store.getters调用不执行的问题

    今天小编就为大家分享一篇解决$store.getters调用不执行的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11

最新评论