本文主要是介绍正则表达式实现只允许输入中文、英文、日文、数字、罗马数字、下划线、点符,且不能以下划线开头或结尾,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
支持中文、字母、数字、日文、特殊字符等字符
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
如果没有加上开头^和结尾$符号,正则表达式效果如下,只会匹配到允许出现的字符
加上$之后,字符串结尾部分只会匹配到想要的字符,但是不想要的字符可以出现在字符串中
^和$加上之后的效果,这样字符串的开头结尾都会匹配正则表达式
这篇关于正则表达式实现只允许输入中文、英文、日文、数字、罗马数字、下划线、点符,且不能以下划线开头或结尾的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!