You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.8 KiB
66 lines
1.8 KiB
# is-expression |
|
|
|
Validates a string as a JavaScript expression |
|
|
|
[![Build Status](https://img.shields.io/travis/pugjs/is-expression/master.svg)](https://travis-ci.org/pugjs/is-expression) |
|
[![Dependency Status](https://img.shields.io/david/pugjs/is-expression.svg)](https://david-dm.org/pugjs/is-expression) |
|
[![npm version](https://img.shields.io/npm/v/is-expression.svg)](https://www.npmjs.org/package/is-expression) |
|
|
|
## Installation |
|
|
|
npm install is-expression |
|
|
|
## Usage |
|
|
|
### `isExpression(src[, options])` |
|
|
|
Validates a string as a JavaScript expression. |
|
|
|
`src` contains the source. |
|
|
|
`options` can contain any Acorn options (since we use Acorn under-the-hood), |
|
or any of the following: |
|
|
|
- `throw`: Throw an error if the string is not an expression. The error can |
|
be an Acorn error, with location information in `err.loc` and `err.pos`. |
|
Defaults to `false`. |
|
- `strict`: Use strict mode when trying to parse the string. Defaults to |
|
`false`. Even if this option is `false`, if you have provided |
|
`options.sourceType === 'module'` which imples strict mode under ES2015, |
|
strict mode will be used. |
|
- `lineComment`: When `true`, allows line comments in the expression. |
|
Defaults to `false` for safety. |
|
|
|
See the examples below for usage. |
|
|
|
## Examples |
|
|
|
```js |
|
var isExpression = require('is-expression') |
|
|
|
isExpression('myVar') |
|
//=> true |
|
isExpression('var') |
|
//=> false |
|
isExpression('["an", "array", "\'s"].indexOf("index")') |
|
//=> true |
|
|
|
isExpression('var', {throw: true}) |
|
// SyntaxError: Unexpected token (1:0) |
|
// at Parser.pp.raise (acorn/dist/acorn.js:940:13) |
|
// at ... |
|
|
|
isExpression('public') |
|
//=> true |
|
isExpression('public', {strict: true}) |
|
//=> false |
|
|
|
isExpression('abc // my comment') |
|
//=> false |
|
isExpression('abc // my comment', {lineComment: true}) |
|
//=> true |
|
``` |
|
|
|
## License |
|
|
|
MIT
|
|
|