Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Simple JavaScript string tokenizer for lexical scanning operations
CoffeeScript JavaScript
tag: v1.0.1
Failed to load latest commit information.
doc Update doc links
src Fix that scanChar wouldn't scan newlines
test Fix that scanChar wouldn't scan newlines
Cakefile Initial commit
LICENSE Update doc links
package.json Bump version to 1.0.1


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.

StringScanner is written in CoffeeScript and distributed via npm as a CommonJS module.

Quick start

$ npm install strscan
$ node-repl
> var StringScanner = require("strscan").StringScanner
> var 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


Clone, fork, or file bugs at GitHub

Read the full documentation/annotated source code


Copyright (c) 2010 Sam Stephenson. Distributed under the terms of an MIT-style license. See LICENSE for details.

Something went wrong with that request. Please try again.