colouring-montreal/app/src/parse.js

28 lines
526 B
JavaScript
Raw Normal View History

2018-09-13 15:36:14 -04:00
/**
* Utility functions for parsing
*/
/**
* Parse a string as positive integer or NaN
*
* @param {string} value
*/
function strictParseInt(value) {
2018-09-30 16:53:20 -04:00
if (/^([1-9][0-9]*)$/.test(value))
2018-09-13 15:36:14 -04:00
return Number(value);
return NaN;
}
function parseBuildingURL(url){
2018-10-04 17:43:50 -04:00
const re = /^\/building\/([^\/]+)(\/edit)?.html/;
2018-09-13 15:36:14 -04:00
const matches = re.exec(url);
2018-09-13 18:55:53 -04:00
if (matches && matches.length >= 2) {
2018-09-13 15:41:42 -04:00
return strictParseInt(matches[1])
2018-09-13 15:36:14 -04:00
}
return undefined;
}
export { strictParseInt, parseBuildingURL };