投稿 资料上传 搜索
您现在的位置是: 首页 > 文章 > 正文

Vue正则写法

前言

正则表达式,又称规则表达式它是计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。  

vue中的正则我们一般可以使用以下三种形式,前两种中每个输入框只能填写一个,如果我们是for循环出来的,我们使用第三种绑定module的形式。  

html中直接replace(使用onkeyup事件)  

<van-field
v-model="createNameDataList.managementNamevalue"
:placeholder="fieldTipsInfo.placeholder"
clearable
:maxlength="fieldTipsInfo.maxlength"
onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')"
/>

使用指令


import Vue from "vue";

function onInput(el, ele, binding, vnode) {
function handle() {
// 只保留数字
// ele.value = ele.value.replace(/[^\d]/g, "");
ele.value = ele.value.replace(/[^\d.]/g, "");

}

return handle;
}
const numberInput = {
bind(el, binding, vnode) {
const ele = el.tagName === "INPUT" ? el : el.querySelector("input");
ele.addEventListener("input", onInput(el, ele, binding, vnode), false);
}
};
Vue.directive("number-input", numberInput);

// 使用方法:
//
{/*
1. import '../../api/Super/instruction/v-number-input'
2. <van-field v-model="model" v-number-input></van-field>
3. data(){
model:""
}
*/}

使用值正则  

vue 文件 

<template>
<div>
<div id="textInput">
<van-field
v-for="index in 10"
:key="index"
:input="test(index)"
v-model="testData[index].model"
></van-field>
</div>

</div>
</template>
<style scoped>
</style>
<script>
import regex from "../../tools/regular-expression/regex";
export default {
data() {
return {
testData: [],
}
},
mounted() {
this.start();
},
methods: {
start() {
for (let index = 0; index < 12; index++) {
this.testData.push({ model: "12345" });
}
},
test(i) {
this.testData[i].model = regex.isNumber(this.testData[i].model);
}
}
};
</script>

js文件  


exprot default{ 
   isNumber: function (str) {
var reg = /[^\d.]/g;
return str.replace(reg,"");
},

/*是否带有小数*/
isDecimal: function (str) {
var reg = /^\d+\.\d+$/;
return str.replace(reg,"");
},

/*校验是否中文名称组成 */
ischina: function (str) {
var reg = /^[\u4E00-\u9FA5]{2,4}$/; /*定义验证表达式*/
return str.replace(reg,""); /*进行验证*/
},

/*校验是否全由8位数字组成 */
isStudentNo: function (str) {
var reg = /^[0-9]{8}$/; /*定义验证表达式*/
return str.replace(reg,""); /*进行验证*/
},

/*校验电话码格式 */
isTelCode: function (str) {
var reg = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
return str.replace(reg,"");
},

/*校验邮件地址是否合法 */
IsEmail: function (str) {
var reg = /^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
return str.replace(reg,"");
}
}
/* 使用方法如下:
import regex from "../../../tools/regular-expression/regex"; // 导入转移符html

this.str = escape.isNumber(str)

*/


转载于:

文章标签:
阿里云服务器采购季
给作者打赏,鼓励TA抓紧创作!
评论