StringScanner is a simple string tokenizer that provides for lexical scanning operations on a string. It's a JavaScript port of the Ruby library with the same name.
Scanning a string means keeping track of and advancing a position (a zero-based index into the source string) and matching regular expressions against the portion of the source string after the position.
This code is a port of Sam Stephenson's original CoffeeScript version.
$ yarn add strscan-ts
$ node
> { StringScanner } = require("strscan-ts")
> s = new StringScanner("This is a test")
> s.scan(/\w+/) # => "This"
> s.scan(/\w+/) # => null
> s.scan(/\s+/) # => " "
> s.scan(/\s+/) # => null
> s.scan(/\w+/) # => "is"
> s.hasTerminated() # => false
> s.scan(/\s+/) # => " "
> s.scan(/(\w+)\s+(\w+)/) # => "a test"
> s.getMatch() # => "a test"
> s.getCapture(0) # => "a"
> s.getCapture(1) # => "test"
> s.hasTerminated() # => true
Go get a hot drink, put on some soothing music, visualize your happy place, and delight in the docs
This is a derivative work of Sam Stephenson's original.
It is made available under the MIT license.
Copyright © 2022 Dave Thomas