|
|
@@ -0,0 +1,31 @@
|
|
|
+var re=/\[[a-zA-Z0-9\s]+\]\(@\d+\.\d+\)/
|
|
|
+
|
|
|
+var md = 'bla bla bla [rel link 1](@2.1) bla bla [link 2](@3.4)'
|
|
|
+var matches;
|
|
|
+var firstMatch;
|
|
|
+var matchIndex;
|
|
|
+var remaining = md;
|
|
|
+var bits = [];
|
|
|
+var beforeMatch;
|
|
|
+var afterMatch;
|
|
|
+
|
|
|
+do {
|
|
|
+
|
|
|
+ matches = re.exec(remaining);
|
|
|
+ if(! matches) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ firstMatch = matches[0];
|
|
|
+ matchIndex = remaining.indexOf(firstMatch);
|
|
|
+ beforeMatch = remaining.slice(0, matchIndex);
|
|
|
+ remaining = remaining.slice(firstMatch.length + matchIndex);
|
|
|
+ bits.push({
|
|
|
+ md: beforeMatch
|
|
|
+ });
|
|
|
+ bits.push({
|
|
|
+ link: firstMatch
|
|
|
+ });
|
|
|
+
|
|
|
+} while(1)
|
|
|
+
|
|
|
+console.log(bits);
|