Skip to content

Commit

Permalink
0.3
Browse files Browse the repository at this point in the history
0.3

1.把js内置对象名字改为complexValidate
2.验证类型名称属于包含关系出现的bug
3.把在自定义验证类型regex函数参数列表进行修正
    由  function (input,multiRegex)
    改为function (item,group,regex)
    1)item为当前验证对象
    2)group不变,为当前验证范围中带有该验证类型的数组
    3)multiRegex改为regex,只需要传一个需要验证的函数和验证类型字符串:
         xxx:{
            type:'fun',
            regex:function (i,j,regex) {
                  return  regex(i,"int|notNull|length(1,5)")
                 }
            }
  • Loading branch information
tlxfif authored Jul 10, 2018
1 parent 51e9676 commit d182110
Showing 1 changed file with 39 additions and 26 deletions.
65 changes: 39 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
第一次写框架 可能代码性能并不好 ^_^

# complexValidate v0.2 前端复杂验证框架
# complexValidate v0.3 前端复杂验证框架


## 使用说明

Expand All @@ -10,7 +11,7 @@
```
<div id="validate"></div>
```
## 3.指定该组input的验证组别,以及需要验证的方式
## 3.指定该组input的验证组别validateGroup,以及需要验证的方式validate
### 3.1 例如:

```
Expand Down Expand Up @@ -70,15 +71,14 @@
<br><br><br><br>
<input type="date" placeholder="不能为空" validateGroup="2" validate="notNull"><br>
<input type="text" placeholder="整数并且不为空" validateGroup="2" validate="notNull|int|phone"><br>
<input type="text" placeholder="xxx" validateGroup="2" validate="xxx(1,2)"><br>
<input type="text" value="" validateGroup="2" validate="password|int"><br>
<input type="text" value="" validateGroup="2" validate="password|int"><br>
<button id="sub2">验证2</button>
</div>
```
则需要在js中配置如下代码
```
simpleValidate.option({
complexValidate.option({
group:[
{
validateRound:"#validate",
Expand All @@ -98,7 +98,7 @@ validateGroup为验证组,同一验证组只需要声明配置一次即可
### 4.2 开始验证
```
$(document).on("click","#sub1",function(){
var arr=window.simpleValidate.validate("1",function (item,status) {
var arr=window.complexValidate.validate("1",function (item,status) {
if(status){
item.css("background-color","#58eead")
}else{
Expand All @@ -107,7 +107,7 @@ $(document).on("click","#sub1",function(){
});
});
$(document).on("click","#sub2",function(){
window.simpleValidate.validate("2",function (item,status) {
window.complexValidate.validate("2",function (item,status) {
if(status){
item.css("background-color","#58eead")
}else{
Expand All @@ -117,16 +117,16 @@ $(document).on("click","#sub2",function(){
});
```
当分别点击两个按钮时验证不同的组别
验证每一个input调用一次window.simpleValidate.validate方法中的回调函数
传入当前input及状态
验证每一个input调用一次window.complexValidate.validate方法中的回调函数
回调函数包含当前的input及状态这两个参数
函数执行完毕返回当前验证组input对象及验证状态的数组

## 5.自定义验证类型
很明显,目前内置的验证函数根本无法满足很多复杂的验证
这个框架提供让用户自己设定验证函数的方式例如:
我们可以在配置对象simpleValidate.ption中添加regex这个对象
我们可以在配置对象complexValidate.option中添加regex这个对象
```
simpleValidate.option({
complexValidate.option({
group:[
{
validateRound:"#validate",
Expand All @@ -136,8 +136,8 @@ simpleValidate.option({
regex:{
xxx:{
type:'fun',
regex:function (input,multiRegex,k,j) {
var len=$(input[0]).val().length
regex:function (curr,group,regex,k,j) {
var len=$(curr).val().length
return len>=k&&len<j
}
}
Expand All @@ -150,24 +150,37 @@ simpleValidate.option({
```
其中xxx的值为一个对象,验证对象的type属性的值目前只能为"fun"或"regex"

~~目前type属性的值为"fun"的验证类型在使用时只能独占,不能多个验证类型一起共同验证~~

如果type为"regex"则,验证对象的regex属性只能为一个正则表达式

如果type为"fun"则,验证对象的regex属性只能为一个匿名函数
如果type为"regex"则,验证对象的regex属性只能为一个正则表达式

该函数的第一个参数返回拥有该验证类型(xxx)的input数组

第二个参数返回多验证函数multiRegex指针

调用multiRegex函数时只需要把input作为第一个参数,验证类型作为之后的参数传递该函数会验证完毕后返回真假
xxx:{
type:'regex',
regex:/\S/
}

例如:multiRegex(input,"int","notNull"),目前该函数只会验证type属性为regex的验证类型
如果type为"fun"则,验证对象的regex属性只能为一个匿名函数

xxx:{
type:'fun',
regex:function (curr,group,regex,k,j) {
var len=$(curr).val().length
return len>=k&&len<j
}
}

第三个参数及以后的参数由用户定义
1)curr为当前验证对象
2)group不变,为当前验证范围中带有该验证类型的数组
3)multiRegex改为regex,现在只需要传一个需要验证的函数和验证类型字符串"int|notNull|length(1,5)"即可:
xxx:{
type:'fun',
regex:function (i,j,regex) {
return regex(i,"int|notNull|length(1,5)")
}
}

如上述代码所示,定义了k,j参数,在 validate="xxx(1,2)" 传递
目前验证参数不能传递匿名对象
第四个参数及以后的参数由用户定义
如上述代码所示,定义了k,j参数,在 validate="xxx(1,2)"



Expand Down

0 comments on commit d182110

Please sign in to comment.