1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/nullfeng-js_validate

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

JsValidate

Проект введения

Это очень интересный инструмент для проверки данных, который может быть использован для обеспечения достоверности информации.

  • Совместимость с AMD и CMD стандартами.
  • Основной код содержит менее 50 строк, что делает его лёгким и компактным.
  • Поддерживает проверку как отдельных данных, так и их массивов.
  • Обладает хорошей расширяемостью и поддерживает пользовательские функции и регулярные выражения для проверки.
  • Простой в использовании — всего несколько строк кода позволяют выполнить сложные проверки.

Далее представлены встроенные правила, которые уже доступны в инструменте. Их количество ограничено, но при необходимости можно легко добавить новые правила.

{
	'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

Возвращаемое значение check()

Если проверка проходит успешно, функция возвращает true. В противном случае она возвращает сообщение об ошибке.

var result = Validate.check(...);
if(result!==true){
    //проверка не пройдена
    alert(result);
}

Журнал обновлений

20180621

  • Оптимизация основного кода (всего 49 строк)
  • Исправление ошибки в сообщении confirm
  • Улучшение поддержки @fieldname в любом месте

Цели на будущее

  • Поддержка асинхронной (удаленной) проверки
  • Добавление автоматической проверки форм
  • Реализация зависит от настроения :)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Один очень простой и быстрый JS-валидатор. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/nullfeng-js_validate.git
git@api.gitlife.ru:oschina-mirror/nullfeng-js_validate.git
oschina-mirror
nullfeng-js_validate
nullfeng-js_validate
master