Package Exports
- @qubit-ltd/common-validator
Readme
@qubit-ltd/common-validator
@qubit-ltd/common-validator is a JavaScript ES6 library of common field validators and validation rules. It provides a comprehensive set of validators for various data types and fields commonly used in web applications.
Installation
# Using npm
npm install @qubit-ltd/common-validator
# Using yarn
yarn add @qubit-ltd/common-validator
Features
- Validators for common field types (email, URL, phone, etc.)
- Validators for data types (number, integer, boolean, etc.)
- Date, time and timestamp validation
- Password validation with customizable rules
- Username, personal name validation
- Support for both synchronous and asynchronous validation
- Comprehensive error messages in both English and Chinese
- Support for custom validation rules and error messages
Usage
Basic Usage
import { validateEmailField, validatePasswordField } from '@qubit-ltd/common-validator';
// Validate an email address
const emailResult = validateEmailField('user@example.com');
console.log(emailResult.success); // true if valid, false if invalid
console.log(emailResult.description); // Error message if invalid
// Validate a password
const passwordResult = validatePasswordField('Password123!');
console.log(passwordResult.success);
console.log(passwordResult.description);
Validation with Context
const user = {
name: 'John Doe',
email: 'john.doe@example.com',
};
// Validate with owner name (useful for generating more specific error messages)
const result = validateEmailField(user.email, {
instance: user,
owner: user.name
});
if (!result.success) {
console.log(result.description); // "Please enter John Doe's email address" if empty
}
Using Validator Class
import { Validator } from '@qubit-ltd/common-validator';
// Create a custom validator
const validator = new Validator();
// Validate a form
const form = {
username: 'johndoe',
email: 'john.doe@example.com',
password: 'Password123!'
};
const usernameResult = validator.validateUsername(form.username);
const emailResult = validator.validateEmail(form.email);
const passwordResult = validator.validatePassword(form.password);
if (usernameResult.success && emailResult.success && passwordResult.success) {
// Form is valid
} else {
// Form has errors
}
Available Validators
validateAlphaNumberField
: Validates alphanumeric stringsvalidateBoolField
: Validates boolean valuesvalidateDateField
: Validates date stringsvalidateTimeField
: Validates time stringsvalidateDateTimeField
: Validates datetime stringsvalidateEmailField
: Validates email addressesvalidateEnumField
: Validates values in an enumerationvalidateNumberField
: Validates numeric valuesvalidateIntegerField
: Validates integer valuesvalidateMobileField
: Validates mobile phone numbersvalidatePasswordField
: Validates passwordsvalidatePersonNameField
: Validates person namesvalidatePhoneField
: Validates phone numbersvalidateTimestampField
: Validates timestampsvalidateUppercaseAlphaNumberField
: Validates uppercase alphanumeric stringsvalidateUrlField
: Validates URLsvalidateUsernameField
: Validates usernamesvalidateFieldByRule
: Validates a field based on a validation rule
Contributing
If you find any issues or have suggestions for improvements, please feel free to open an issue or submit a pull request to the GitHub repository.
License
@qubit-ltd/common-validator is distributed under the Apache 2.0 license. See the LICENSE file for more details.