Releases: jaywcjlove/validator.js
Releases · jaywcjlove/validator.js
v2.0.0
- 📖 doc: update README.md 0b985ad @jaywcjlove
- 📖 doc: update README.md 7c34425 @jaywcjlove
- 🐞 fix: Fix initValues errors. eacd271 @jaywcjlove
⚠️ Thev1
version document preview is here.
⚠️ 1.0
cannot be upgraded to2.0+
const validator = useRef(new Validator({
validate: (value, values, field) => {
if (field === 'password' && !value) {
return 'Required!';
}
}
}));
validator.message('email', data.email, {
validate: (val) => !/^[A-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(val) ? `The ${val} must be a valid email address.` : ''
})
Used in the React App
Example
import { useRef, useState } from 'react';
import Validator from 'validator.tool';
function Demo() {
const validator = useRef(new Validator({
validate: (value, values, field) => {
if (field === 'password' && !value) {
return 'Required!';
}
}
}));
const [data, setData] = useState({
email: 'kennyiseeyou@gmail.com'
});
const [upState, forceUpdate] = useState(0);
useEffect(() => {
if (!validator.current.initValues) {
validator.current.initValues = data;
}
}, []);
function handleSubmit(evn) {
evn && evn.preventDefault();
validator.current.showMessages();
forceUpdate(upState + 1);
}
function handleReset() {
validator.current.hideMessages();
const v = validator.current.reset();
setData({ ...v });
}
function handleChange(env) {
const target = env.target;
const value = target.type === "checkbox" ? target.checked : target.value;
const name = target.name;
setData({ ...data, [name]: value });
}
return (
<form onSubmit={handleSubmit} onReset={handleReset} onChange={handleChange}>
<div>
<label htmlFor="email">EMail:</label>
<input type="email" name="email" defaultValue={data.email} />
<p>
{validator.current.message('email', data.email, {
validate: (val) => !/^[A-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(val) ? `The ${val} must be a valid email address.` : ''
})}
</p>
</div>
<div>
<label htmlFor="password">Password:</label>
<input type="password" name="password" />
<p>
{validator.current.message('password', data.password)}
</p>
</div>
<div>
<label htmlFor="repassword">Confirm Password:</label>
<input type="repassword" name="repassword" />
<p>
{validator.current.message('repassword', data.repassword)}
</p>
</div>
<div>
<button type="submit">Submit</button>
<button type="reset">Reset</button>
</div>
</form>
);
}
Used in the React Native App
You need to wrap validator with <Text>
Element.
Example
import React, { useRef } from 'react';
import { Text, View, Button } from 'react-native';
import Validator from 'validator.tool';
const WelcomeScreen = () => {
const [text, onChangeText] = React.useState('Useless Text');
const [, forceUpdate] = React.useState();
const validator = useRef(new Validator({
validate: (value, values, field) => {
if (field === 'username' && value.length > 3) {
return 'Required!';
}
},
}));
return (
<View>
<TextInput onChangeText={onChangeText} value={text} />
<Text>
{validator.current.message('username', text)}
</Text>
<Button
onPress={() => {
validator.current.showMessages();
forceUpdate(1);
}}
title="Submit"
color="#841584"
/>
</View>
);
};
Used in the browser client
Refer to the validator.min.js
file in the application, manually download and link validator.min.js in HTML.
<script type="text/javascript" src="dist/validator.min.js"></script>
It can also be downloaded via UNPKG:
Example
<form id="form">
<div>
<label for="email">EMail:</label>
<input type="email" name="email" placeholder="" />
</div>
<div>
<label for="password">Password:</label>
<input type="password" name="password" />
</div>
<div>
<label for="repassword">Confirm Password:</label>
<input type="repassword" name="repassword" />
</div>
<div>
<button type="submit">Submit</button>
<button type="reset">Reset</button>
</div>
</form>
<script type="text/javascript" src="https://unpkg.com/validator.tool/dist/validator.min.js"></script>
<script type="text/javascript">
var validator = new Validator({
form: document.getElementById('form'),
rules: {
email: {
validate: (val) => val ? '' : 'Required!',
},
password: {
// validate: (val) => val < 5 || val > 15 ? '字数大于5,小于15' : ''
},
repassword: {
validate: (val) => !val ? 'Required!' : '',
},
}
});
validator.form.onsubmit = (evn) => {
evn.preventDefault();
const values = validator.getValues();
console.log(values);
}
validator.form.onreset = (evn) => {
const data = validator.reset();
console.log(data);
}
</script>
v2.0.0-alpha.2
v2.0.0-alpha.1...v2.0.0-alpha.2
- 💄 chore(deps): update dependency rollup to v2.58.3 (#61) 6e83c06 @renovate-bot
- 🐞 fix: Fix reset api error. a59b57c @jaywcjlove
v2.0.0-alpha.1
v2.0.0-alpha.0...v2.0.0-alpha.1
- 💄 chore: update .github/workflows/ci.yml 986fbba @jaywcjlove
- 💄 chore(deps): update dependency @types/react-dom to v17.0.10 (#60) 8529d5a @renovate-bot
- 💄 chore(deps): update dependency @types/react to v17.0.33 (#59) f804862 @renovate-bot
- 🌍 website: udpate website style. 809cd5b @jaywcjlove
- 🐞 fix: Fix errorMessages error. aaf2aa5 @jaywcjlove
- 🌟 feat: add setValues api. 8bc7d46 @jaywcjlove
- 📖 doc: update README.md fd78da7 @jaywcjlove
v2.0.0-alpha.0
- 📄 Update .circle.yml f1209a3 @jaywcjlove
- 📄 Update package.json b862ee7 @jaywcjlove
- 📄 Update uglify-js 5cb4bbb @jaywcjlove
- 📄 Fixed test faild 8e1e5a0 @jaywcjlove
- 📄 Update karma-webpack d12cf61 @jaywcjlove
- 📄 Update webpack c6fbf11 @jaywcjlove
- 📄 oh ... d0c9020 @jaywcjlove
- 📄 Update .travis.yml 0d84463 @jaywcjlove
- 📄 Update test 27e16c5 @jaywcjlove
- 📄 Update .travis.yml fae9d79 @jaywcjlove
- 📄 Update .circle.yml bb4b700 @jaywcjlove
- 📄 Update .circle.yml dcf3324 @jaywcjlove
- 📄 Update .circle.yml ebfafd4 @jaywcjlove
- 📄 Update .circle.yml 9ad3dd7 @jaywcjlove
- 📄 fixed test failed 4534f43 @jaywcjlove
- 📄 Update README.md 3930684 @jaywcjlove
- 📄 Fix #16 the error caused by the judgment order. 40393bf @jaywcjlove
- 📄 Update README.md 9029463 @jaywcjlove
- 📄 Update devDependencies. 401ad12 @jaywcjlove
- 📄 Update package-lock.json 6606010 @jaywcjlove
- 📄 Update circle.yml 78a49e5 @jaywcjlove
- 📄 Update circleci 2.0 2eead46 @jaywcjlove
- 📄 Update circle config. 190d820 @jaywcjlove
- 📄 Modify typo. #19 bb7c395 @jaywcjlove
- 📄 Create FUNDING.yml de2dac9 @jaywcjlove
- 📄 Update FUNDING.yml 8b43e77 @jaywcjlove
- 📄 Bump lodash from 4.17.10 to 4.17.14 3ac3617 @dependabot-bot
- 📄 Bump mixin-deep from 1.3.1 to 1.3.2 (#23) 52f4777 @dependabot-bot
- 📄 Bump lodash from 4.17.14 to 4.17.19 (#29) 99cefb1 @dependabot-bot
- 📄 Bump https-proxy-agent from 2.2.1 to 2.2.4 (#27) 3f19842 @dependabot-bot
- 📄 Add renovate.json 21241ee @renovate-bot
- 📄 Bump extend from 3.0.1 to 3.0.2 c4b5537 @dependabot-bot
- 📄 Bump http-proxy from 1.17.0 to 1.18.1 6b9a2a8 @dependabot-bot
- 🌟 feat: Support UTF-8 Email (#56) 36fc8fa @kiznick
- 🐝 refactor: rebuild code. 8692931 @jaywcjlove
- 💄 chore: remove package-lock.json 76cf597 @jaywcjlove
- 📖 doc: Update README.md b6a29ab @jaywcjlove
- 💄 chore: update .github/workflows/ci.yml d66abcf @jaywcjlove
- 📖 doc: Update README.md 37d29da @jaywcjlove
- 💄 chore: update .github/workflows/ci.yml 8a4863b @jaywcjlove
v1.0.9
v1.0.8
- b0d46b5 添加 is_money 金额格式验证 @dulumao
- b0d46b5 添加 is_english 字母验证
⚠️ @dulumao - b0d46b5 添加 is_chinese 中文验证 @dulumao
- b0d46b5 添加 is_percent 验证百分比
⚠️ @dulumao - b0d46b5 添加 different 拒绝与某个字段相等 @dulumao
- b0d46b5 添加 contains 直接判断字符串是否相等 @dulumao
- b0d46b5 添加 contains 用于服务条款,是否同意时相当有用 @dulumao
- ea59ce4 b7eeaf2 更新文档
- 75d5ad9 添加测试用例