Version 0.9 ALPHA 2
liveRegExp.js allows your RegExp to partially match string, using step-RegExps.
var reg = liveRegExp("a(b|cd)e", "gi"),
result = reg.match("abace");or
var reg = liveRegExp(/a(b|cd)e/gi),
result = reg.match("abace");The argument must be a valid RegExp.
###liveRegExp Object Properties
first : RegExp. Return the first generated step-RegExp.
flags : String. A lowercase String of all flags. Ex : gi.
global : Boolean. Is the g flag present.
ignoreCase : Boolean. Is the i flag present.
last : RegExp. The last and final generated step-RegExp.
length : Number. The number of step-RegExps
multiline : Boolean. Is the m flag present.
original : RegExp. The original RegExp.
source : String. The last RegExp's source.
sourceSteps : Array. An Array of the step-RegExps' sources (It's an Array of Strings)
steps : steps. An array of all the step-RegExps
sticky : Boolean. Is the y flag present and supported.
unicode : Boolean. Is the u flag present and supported.
haveSameFlagsAs :
Boolean livereg.haveSameFlagsAs(RegExp reg)Whether livereg and the RegExp reg have the same flags
Boolean livereg.haveSameFlagsAs(liveRegExp reg)Whether livereg and the liveRegExp reg have the same flags
match :
Array livereg.match(String str)Return an Array of PartialMatch Object sorted by index. Return null if there're no results.
data : String. The data that was partially (or fully) matched)
index : Number. The index of the match, starting at 0.
rate : Number. The percentage of steps that was accomplished.
stepIndex : Number. The index of the step that matched the result.
liveRegExp.js generates step-regExps by breaking the original RegExp into each of its component. For example, the n^th RegExp = n^th-1 RegExp + its next component.
Example : Here are the step-regExps of a RegExp.
Original :
/^ab(c|de)f[g-h]+$/giIts step-RegExps :
0: /^a/gi
1: /^ab/gi
2: /^ab(c|d)/gi
3: /^ab(c|de)/gi
4: /^ab(c|de)f/gi
5: /^ab(c|de)f[g-h]+/gi
6: /^ab(c|de)f[g-h]+$/gi
Here is a quick and dirty example.
All code is released under the terms of the MIT License.