很久之前有个客户定制了一个ERP系统,里面有个单位的必填项,是没有任何规律的字符串,也就是只需要做必填即可,结果前段时间维护该信息的换了一个人,必填的单位居然是空白,因为数据缺失的原因导致后面一系列的工作流一个都提交不了,该员工意识到自己闯祸后直接跑路,联系不上,后经过我们排查发现是输入了空格,因为当时客户赶时间只做了前端校验,后端接口就直接通过操作了,所以这里还是强烈建议前端+后端数据校验才是安全的,当然如果是客户这边给到的费用不够或者赶时间那就把后端校验的功能阉割掉,然后必填项这里使用如下方法就不会输入空格就能通过校验了
首先我们需要知道的是其实空格也同样算是一个字符。同样的空格那么肯定是会通过校验的,那么我们如何去实现不让其首尾输入空格呢?
方案一:
使用v-model.trim修饰符,这样就会自动过滤掉首尾空白字符,如果采用trim修饰符的话,确实可以实现功能,但是这个时候首尾都不能输入空格就会导致一个问题,当我们从左到右输入文字的时候,如果需要输入的字符串中间包含空格,就会无法实现,会遇到不能输入的问题,我们只能输入完成之后再去将鼠标光标放置在字符串中间部分输入空格,这样肯定是不利于我们输入的。
方案二:
采用pattern,手写正则的方式实现功能。我们只需要在我们对应的rules数组对象校验中新增这样一个正则写法即可。
rules:{
code: [{ required: true, pattern: '[^ \x20]+', trigger: 'change', message: '验证码不能为空' }],
}</