JSPM

  • Created
  • Published
  • Downloads 381
  • Score
    100M100P100Q75444F
  • License MIT

Extracts chunks from possibly comma or whatever-separated string

Package Exports

  • string-process-comma-separated

Readme

string-process-comma-separated

Extracts chunks from possibly comma or whatever-separated string

Install

npm i string-process-comma-separated

Quick Take

import { strict as assert } from "assert";
import { processCommaSep } from "string-process-comma-separated";

const gatheredChunks = [];
const gatheredErrors = [];
const rawnbsp = "\u00a0";

// it's a callback-interface:
processCommaSep(`<FRAMESET rows=" ,,\t50% ,${rawnbsp} 50% ,\t\t,">`, {
  from: 16, // <- beginning of the attribute's value
  to: 35, // <- ending of the attribute's value
  separator: ",",
  cb: (idxFrom, idxTo) => {
    gatheredChunks.push([idxFrom, idxTo]);
  },
  errCb: (ranges, message) => {
    gatheredErrors.push({ ranges, message });
  },
});

assert.deepEqual(gatheredChunks, [
  [20, 23],
  [27, 30],
]);

assert.deepEqual(gatheredErrors, [
  { ranges: [[16, 17]], message: "Remove whitespace." },
  { ranges: [[17, 18]], message: "Remove separator." },
  { ranges: [[18, 19]], message: "Remove separator." },
  { ranges: [[19, 20]], message: "Remove whitespace." },
  { ranges: [[23, 24]], message: "Remove whitespace." },
  { ranges: [[25, 27]], message: "Remove whitespace." },
  { ranges: [[30, 31]], message: "Remove whitespace." },
  { ranges: [[32, 34]], message: "Remove whitespace." },
  { ranges: [[31, 32]], message: "Remove separator." },
  { ranges: [[34, 35]], message: "Remove separator." },
]);

Documentation

Please visit codsen.com for a full description of the API and examples.

Contributing

To report bugs or request features or assistance, raise an issue on GitHub.

Licence

MIT License

Copyright (c) 2010-2021 Roy Revelt and other contributors

ok codsen star