赞
踩
支持中文、字母、数字、日文、特殊字符等字符
data() { return{ rules: { activityName: [ { required: true, message: "请输入活动名称", trigger: "blur" }, {validator: checkName} ], } }; let checkName = (rule, value, callback) => { let reg = new RegExp("([a-zA-Z0-9\u4e00-\u9fa5]|[\u0800-\u4e00]|[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?])"); console.log(reg.test(value)); if (!reg.test(value)) { callback(new Error('只允许输入字母、中文、数字、日文、特殊字符等字符,请重新输入')); } else { if(value.length>20){ callback(new Error('输入字符数不允许超过20个')); }else{ activityRequestApi.checkOnlineActivityNameIsRepeated({activityName:value,activityId:this.$route.query.activityId}).then(res=>{ if(res.data){ callback(new Error('活动名称重复,请重新输入')); }else{ callback(); } }) } } }; } let reg = new RegExp("^[a-zA-Z0-9\u4e00-\u9fa5\.\u0800-\u4e00]+$");//保证输入的每个字段都会进行判断,只允许输入中文、英文、日文、数字、罗马数字、点符“.” let reg = new RegExp("^(?!_)(?!.*?_$)(^[a-zA-Z0-9_\u4e00-\u9fa5\.\u0800-\u4e00]+$)");//只允许输入中文、英文、日文、数字、罗马数字、下划线、点符,且不能以下划线开头或结尾
虽然实现了只允许输入中文、英文、日文、数字、罗马数字、下划线、点符,且不能以下划线开头或结尾,但是这里日文字符包括了中文的一些符号“”‘’【】——|、,所以修改成下面的日文全角且不包括符号
日文全角和中文[\u30a1-\u30f6\u3041-\u3093\uFF00-\uFFFF\u4e00-\u9fa5]这个包含了:;两个符号
日文全角不包括中文符号\u30a1-\u30f6\u3041-\u3093\uFF00
let reg = new RegExp("^(?!_)(?!.*?_$)(^[a-zA-Z0-9_ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ\u4e00-\u9fa5\.\u30a1-\u30f6\u3041-\u3093\uFF00]+$)");
正则表达式在线测试网址
http://c.runoob.com/front-end/854
如果没有加上开头^和结尾$符号,正则表达式效果如下,只会匹配到允许出现的字符

加上$之后,字符串结尾部分只会匹配到想要的字符,但是不想要的字符可以出现在字符串中


^和$加上之后的效果,这样字符串的开头结尾都会匹配正则表达式





Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。