validate-variable v1.0.0
JavaScript Variable Name Validator
Validate any string as a JavaScript variable name, taking into consideration both the ECMAScript 6 specification and Unicode 8.0.0, as well as reserved words and invalid escape sequences in older engines.
Adapted from JavaScript identifier validator by Mathias Bynens and repackaged as an npm module.
Installation
Using npm
npm install validate-variableUsing yarn
yarn add validate-variableImporting
Import as an ES6 module
import validateVariable, { isValidVariable } from 'validate-variable'Import as a CommonJS module
const { validateVariable, isValidVariable } = require('validate-variable')Basic usage
console.log(isValidVariable('ಠ_ಠ'))Returning:
trueAdvanced usage
Includes any errors and/or warnings with the return value.
With errors
console.log(validateVariable('await'))Returning:
{
valid: false,
errors: {
reserved: true
}
}With warnings
console.log(validateVariable('undefined'))Returning:
{
valid: true,
warnings: {
immutable: true
}
}Types of errors
invalidIdentifier
The format of the variable name is invalid according to ES6 + Unicode 8.0.0
reserved
The variable matches any reserved keywords like return or await
Types of warnings
es3
The variable is an ES3 reserved word. You may want to avoid using it if support for older JavaScript engines is a concern.
es5
Invalid identifier as per ES5. You may want to avoid using it if support for older JavaScript engines is a concern.
zeroWidth
The variable contains zero-width characters that are allowed in IdentifierPart as per ES5, but not in ES3. You may want to avoid using it if support for older JavaScript engines is a concern.
unicode
Invalid identifier according to Unicode v5.1.0. You may want to avoid using it if support for JavaScript engines with outdated Unicode data tables is a concern.
immutable
The NaN, Infinity, and undefined properties of the global object are immutable or read-only. Setting them won’t have an effect. Avoid using them as variable names.
Strict mode
Activate strict mode by setting the second argument to true when calling either method.
This makes any warnings return an invalid result.
console.log(isValidVariable('NaN', true))Returning:
falseLicense
Licensed under the GPL 2.0 license.
4 years ago