UNPKG

stream-token-parser

Version:

Token parser designed based on stream property. Accept chunk string and parse it into tokens simultaneously. [readme-lang:zh]基于流特性设计的token解析器,接受一个chunk的字符串,同时解析成tokens。

32 lines (28 loc) 808 B
'use strict'; /** * if your text is not clean, there are some mess. * For example, <div>abc</div>!!<div>def</div> is messed by !! between divs. * * There is a simple trick to solve this problem, use a "trash" token with lowest priority, see the example */ let Parser = require('../..'); Parser.parse('<div>abc</div>!!<div>def</div>', [{ name: 'start', word: /<.*>/, isPart: (v) => { return v.indexOf('<') === 0 && (v.indexOf('>') === -1 || v.indexOf('>') === v.length - 1) && v.indexOf('</') !== 0; } }, { name: 'end', word: /<\/.*>/, isPart: (v) => { return v.indexOf('</') === 0 && (v.indexOf('>') === -1 || v.indexOf('>') === v.length - 1); } }, { name: 'content', word: /\w*/ }, { name: 'trash', word: /./, priority: -1000 }]);