{"_id":"@church1117/form-validation","_rev":"5-9e96d67cb00e40734366eeed0ca0fe7a","time":{"created":"2023-06-27T08:35:02.560Z","1.0.0":"2023-06-27T08:11:43.900Z","modified":"2023-06-27T08:51:43.541Z","1.0.1":"2023-06-27T08:19:31.543Z","1.0.2":"2023-06-27T08:26:15.818Z","1.0.3":"2023-06-27T08:35:02.843Z","1.0.4":"2023-06-27T08:51:43.447Z"},"name":"@church1117/form-validation","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.3":{"name":"@church1117/form-validation","version":"1.0.3","description":"灵感来源于 `Laravel` 框架的验证器.","main":"index.js","scripts":{"test":"mocha"},"keywords":["validation","form validation"],"author":{"name":"church"},"license":"ISC","type":"module","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3"},"_id":"@church1117/form-validation@1.0.3","_nodeVersion":"16.14.1","_npmVersion":"8.5.0","dist":{"integrity":"sha512-P8iuYYR+NQenDDZjjJ93ZjGjWELO3MfwucwIUlc+YcWYJm6wNicI80c4AbOMeynL4o/KmUcPyMeH4PBIrF+kcw==","shasum":"5bf2513d367e3cde84b9f279e2cc6924882c7018","tarball":"https://registry.npmjs.org/@church1117/form-validation/-/form-validation-1.0.3.tgz","fileCount":29,"unpackedSize":17265,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlSshor7b8JkpKFYjGk5WBBaM8xM5YvH90RYE7VukLdQIhAK4u4NENfZgOaAS8EvSR53heNvQNo0eKgtBpPTyhi7Hr"}]},"_npmUser":{"name":"church1117","email":"wolfqong1993@gmail.com"},"directories":{},"maintainers":[{"name":"church1117","email":"wolfqong1993@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/form-validation_1.0.3_1687854902621_0.839137575051478"},"_hasShrinkwrap":false},"1.0.4":{"name":"@church1117/form-validation","version":"1.0.4","description":"灵感来源于 `Laravel` 框架的验证器.","main":"index.js","scripts":{"test":"mocha"},"keywords":["validation","form validation"],"author":{"name":"church"},"license":"ISC","type":"module","devDependencies":{"mocha":"^10.2.0","should":"^13.2.3"},"_id":"@church1117/form-validation@1.0.4","_nodeVersion":"16.14.1","_npmVersion":"8.5.0","dist":{"integrity":"sha512-d38ZDTxZiUGjB+rZFuOXc+ImK0Uy0lpTlh8GkI47G95YXGTjMtrOr4eitP+JoCzW9/he2ixg3w7ZI60xN3PP9w==","shasum":"c7cc882fd7619bb1986a773340e0c39e80c8ae1c","tarball":"https://registry.npmjs.org/@church1117/form-validation/-/form-validation-1.0.4.tgz","fileCount":29,"unpackedSize":17268,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiMYoz3Gt8buAP7b6JoRjAFWd+IRCN+f+1DjSPv1/V9AIgXLoBJtn5eewvCMsSRg5skykxyJt6dLYdAA2dOLmcmrM="}]},"_npmUser":{"name":"church1117","email":"wolfqong1993@gmail.com"},"directories":{},"maintainers":[{"name":"church1117","email":"wolfqong1993@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/form-validation_1.0.4_1687855903294_0.46339223528326423"},"_hasShrinkwrap":false}},"maintainers":[{"name":"church1117","email":"wolfqong1993@gmail.com"}],"description":"灵感来源于 `Laravel` 框架的验证器.","keywords":["validation","form validation"],"author":{"name":"church"},"license":"ISC","readme":"### 介绍\r\n\r\n灵感来源于 `Laravel` 框架的验证器.\r\n\r\n### 安装\r\n\r\n```shell\r\nnpm install @church1117/form-validation\r\n```\r\n\r\n### 使用\r\n\r\n```javascript\r\nimport Validation from \"@church1117/form-validation\"\r\n\r\nlet data = {\r\n        name: \"church\",\r\n        mobile: \"18565919379\",\r\n        age: 19,\r\n        gender: '2',\r\n        password: \"123456\",\r\n        captcha: \"12345\",\r\n        idcard: '42052919910727452X',\r\n        email: \"xxx@qq.com\",\r\n        test: \"ttt\",\r\n        birthday: '1993/11/17',\r\n    }\r\n\r\nlet rules = {\r\n        name: \"required|between:6,255\",\r\n        mobile: \"required|telephone\",\r\n        age: \"numeric|between:8,60\",\r\n        gender: \"numeric|range:\" + gender.join(','),\r\n        password: \"required|min:6|password\",\r\n        captcha: \"required|length:5\",\r\n        idcard: \"required|idcard\",\r\n        email: \"email\",\r\n        // test: \"required|testRule\"\r\n        birthday: \"datetime\"\r\n    }\r\n\r\nlet messages = {\r\n        name: {\r\n            required: \"名字不能为空\",\r\n            between: \"名称长度必须在6~255之间\",\r\n        },\r\n        mobile: \"不正确的手机格式\",\r\n        age: {\r\n            numeric: \"年龄不是一个有效的数值\",\r\n            between: \"年龄必须在18-60岁之间\"\r\n        },\r\n        password: {\r\n            required: \"密码不能为空\",\r\n            min: \"密码长度不能小于6位\",\r\n            regex: \"密码只能由数字、大小写字母构成\",\r\n        },\r\n        captcha: \"验证码不正确\",\r\n        idcard: {\r\n            required: \"身份证不能为空\",\r\n            idcard: \"身份证格式不正确\",\r\n        },\r\n        test: {\r\n            required: \"测试字段不能为空\",\r\n            testRule: \"该字段的值必须为test\"\r\n        }\r\n    }\r\n\r\nlet validation = new Validation(data, rules, messages);\r\n```\r\n\r\n- messages 可以定义不同粒度的错误信息，如果是字符串，那么该字段的所有验证规则都使用该错误信息。如果是对象，就只使用对应规则的错误信息。\r\n\r\n### 内置规则\r\n\r\n- required\r\n- telephone\r\n- min\r\n- max\r\n- between\r\n- idcard\r\n- range\r\n- password\r\n- numeric\r\n- length\r\n- email\r\n- datetime\r\n\r\n### 自定义规则\r\n\r\n匿名函数参数(value, field, ...params)\r\n\r\n- value\r\n- field\r\n- ...params\r\n\r\n```javascript\r\nValidation.register('testRule', function(value, field) {\r\n    if (typeof value != 'undefined' && value != 'test') {\r\n        throw new Error(`${field} must equal test`)\r\n    }\r\n});\r\n```\r\n\r\n### 测试\r\n\r\n```shell\r\nnpm test\r\n```\r\n\r\n### 贡献\r\n\r\n先 Fork, 再提 PR","readmeFilename":"readme.md"}