aboutsummaryrefslogtreecommitdiffstats
path: root/src/nodejs/parse.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/nodejs/parse.js')
-rw-r--r--src/nodejs/parse.js30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/nodejs/parse.js b/src/nodejs/parse.js
index 0338954..932f91f 100644
--- a/src/nodejs/parse.js
+++ b/src/nodejs/parse.js
@@ -5,14 +5,20 @@ exports.urlToXpathObj = function urlToXpathObj(url){
// filter no enough arguments
var parseKeyList = function(string){
- result = /(.+)(:?\|(.+))/.exec(string);
+
+ console.log("input f1: " + string);
+ result = /([^\|]*)/g.exec(string);
+ console.log(result);
result.shift();
return result;
}
var parseBboxList = function(string){
- result = /(.+)(:?,(.+)){3}/.exec(string);
+ console.log("input: " + string);
+ result = /(.+),(.+),(.+),(.+)/.exec(string);
+
+ console.log(result);
if(result.length != 4){
throw "error";
@@ -30,19 +36,25 @@ exports.urlToXpathObj = function urlToXpathObj(url){
var xp = {};
- result = /\/(*|node|way|relation)(:?\[(.*)=(.*)\])*/.exec(url);
+ result = url.match(/\/(\*|node|way|relation)\[(.*)=(.*)\]*/);
+ console.log("OUTER: " + result);
+
xp.object=result[1];
for(i=2;i<=result.length;i++){
- if(result[i]==="bbox"){
- xp.bbox = parseBboxValues(result[i+1]);
+ if(result[i]==="bbox" && result[i]){
+ xp.bbox = parseBboxList(result[i+1]);
} else {
- xp.tag ={};
- xp.tag.keys = parseKeyList(result[i]);
- xp.tag.values = parseKeyList(result[i+1]);
+ if(result[i]){
+ xp.tag ={};
+ xp.tag.keys = parseKeyList(result[i]);
+ xp.tag.values = parseKeyList(result[i+1]);
+ }
}
i++;
- }
+ }
+ console.log(xp);
+ return(xp);
}