咨询电话:
15628812133
20
2023/07

自定义element表单验证规则--正则表达式

发布时间:2023-07-20 17:20:44
发布者:蛄蛹者
浏览量:
0

因为需要对密码和手机号进行一下表单验证,然后去博客上借鉴了几段,今天有空研究了一下正则,刚开始看确实挺麻烦,但其实就是一个判断规则,这篇文章主要以正则表达式的介绍为主,关于element的验证的代码并还没有深入研究,只是简单提及一下,以一下两段为例展示element自定义表单验证。

首先我们在datareturn外构建一个简单的判断函数,

屏幕截图(107).png

其中value就是我们表单传递过来的需要验证的数据,一般是选项或者文字数字,我们这里是关于密码的。Callback就是自定义校验反馈函数,当数据通过了你的校验,callback就表示校验正确,若里边传入了错误信息,callback就会抛出你传入错误信息。

接下来看正则,^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{4,20}$

^$分别代表着开始和结束,首先我们把它分成三块。

第一块:(?![0-9]+$) ?!的意思是正向否定预查简单来说就是不能匹配后边的东西,而他后边的东西[0-9]+的意思是0-9可以有最少一个或者很多个,最后结束。

第二块:(?![a-zA-Z]+$),和上边一样,只不过这里检测的是26个大小写字母。

第三块:[0-9A-Za-z]{4,20}意思是可以输入数字和字母,他们的个数最小是4,最多是20

然后,我们通过test判断我们的数据是不是满足这个正则,当是全英文的时候被(?![0-9]+$)匹配到了,但是(?![a-zA-Z]+$)没有匹配到,所以返回的是false,同理全数字或者少于4个多于20个依然会返回false

返回false后就会通过我们的if判断进入true的区域,然后callback就抛出了我们设定的错误信息。当是数值true的时候才会正确通过校验。

Ok校验方法设置完成,我们把rulesvalidator校验规则换成我们的函数。

屏幕截图(110).png

pattern的正则就更简单了,我会在文章结尾处为大家解释。

这里拿第一个举例,

屏幕截图(108).png

屏幕截图(111).png

按下确定就会走addformvAlida()方法,我们传入需要校验的对象,这个element自带的方法validate就会立刻校验一次需要校验的对象中的数据,当全部校验通过才会走下一步的请求,如果有一个校验是错误的就会返回false,阻止进行下一步。


关于pattern的正则的解释,这是判断手机号的,同样的^$分别代表着开始和结束,首先他的开始必须是1,然后他后面的1位数字只能输入3-9,因为这里既没有*(0次或多次)也没有+(1次或多次)号,所以仅代表1位数字,然后\d等同于[0-9],最后结束的时候必须等于9位。


返回列表