JsValidate
Это очень интересный инструмент для проверки данных, который может быть использован для обеспечения достоверности информации.
Далее представлены встроенные правила, которые уже доступны в инструменте. Их количество ограничено, но при необходимости можно легко добавить новые правила.
{
'number': '$0 должен быть числом',
'chinese': '$0 должны быть китайскими символами',
'email': '$0 имеет неправильный формат',
'idcard': '$0 имеет неправильный формат',
'phone': '$0 имеет неправильный формат',
'require': '$0 не может быть пустым',
'length': '$0 должна иметь длину от $1 до $2 символов',
'min': '$0 должно содержать не менее $1 символа',
'max': '$0 не должно превышать $1 символ',
'eq': '$0 должно быть равно $1',
'neq': '$0 не должно быть равным $1',
'gt': '$0 не должно быть меньше $1',
'lt': '$0 не должно быть больше $1',
'between': '$0 значение должно находиться между $1 и $2',
'in': '$0 может принимать значения из $n',
}
Чтобы добавить китайское название к полю, просто добавьте @+название в правило. Например:
{'name':'require!必须写$0'}
//必须写name
После добавления китайского названия:
{'name':'@姓名|require!必须写$0'}
//必须写姓名
Добавление восклицательного знака после имени правила позволяет задать пользовательское сообщение для этого правила. В сообщении можно использовать следующие обозначения:
$0
— имя поля;$1
, $2
и т. д. — параметры, следующие за правилом;$n
— параметр, отображаемый как есть (через запятую);:1
— этот параметр будет заменён на имя поля, а не на значение.
Например: 'confirm': '$0 с:1 не совпадает'
, где :1
будет заменено на имя поля.Сначала необходимо импортировать скрипт:
<script src='Validate.js'></script>
Затем можно сразу приступить к использованию:
/**
* Проверка данных
* @param rule одно или несколько правил
* @param field данные для проверки
* @param all если true, возвращает все ошибки
* @return если проверка прошла успешно, возвращается true, иначе — сообщение об ошибке или набор сообщений
*/
Validate.check(rule,field,all);
/**
* Добавление или изменение правила
* @param name имя правила
* @param rule содержание правила (функция или регулярное выражение)
* @param msg сообщение
* @return this
*/
Validate.rule(name,rule,msg);
var rule = {
'name':'@姓名|require|chinese',
'idcard':'@身份证号码|require|idcard',
'type':'@类型|require|in:0,1',
'qq':'@QQ号码|require|number',
'email':'@电子邮箱|require|email',
'password':'@密码|require|len:6,10',
'password2':'@确认密码|confirm:password!确认密码不一致',
'like':'@喜欢的数字|require|in:0,1,2,3,4,5,6'
},data = {
'name':'nullfeng',
'idcard':'50023619951105256a',
'type':0,
'qq':'',
'email':'nullfeng(at)163.com',
'password':'123123',
'password2':'456456',
'like': '8'
};
/**
* Проверяет все ошибки
*/
var result = Validate.check(rule,data,true);
console.log(result);
//output:
/*{
email:"электронный адрес имеет неправильный формат"
idcard:"неправильный формат номера удостоверения личности"
like:"можно выбрать только 0,1,2,3,4,5,6"
name:"должно быть китайским"
password2:"подтверждение пароля не совпадает"
qq:"номер QQ не может быть пуст"
}*/
/**
* Проверяет одну ошибку
*/
result = Validate.check('@昵称|chinese','nullfeng');
console.log(result);
// output: 昵称 должно быть китайским
//Создание правила, которое допускает только определённые значения
Validate.rule('diy_rule',function(v,m){
//this.data получает данные для проверки, например this.field['username']
//this.test выполняет существующие правила проверки, например this.test.eq('2',2);
return v==m;
},'$0 может быть только $1');
//Использование
var test = '23';
var result = Validate.check(test,'@测试变量|diy_rule:24');
console.log(result);
//Вывод: тестирование переменной может быть только 24
//Создание правила, допускающего только значения, начинающиеся с 5
Validate.add('diy_rule',/^5\w+/,'$0 может начинаться только с 5');
//Использование
var test = 'abcd';
var result = Validate.check(test,'@тестовая переменная|diy_rule');
console.log(result);
//Вывод: тестовая переменная может начинаться только с 5
Если проверка проходит успешно, функция возвращает true. В противном случае она возвращает сообщение об ошибке.
var result = Validate.check(...);
if(result!==true){
//проверка не пройдена
alert(result);
}
20180621
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )