Utility methods for DOM and string parsing
สคริปต์นี้ไม่ควรถูกติดตั้งโดยตรง มันเป็นคลังสำหรับสคริปต์อื่น ๆ เพื่อบรรจุด้วยคำสั่งเมทา // @require https://update.greasyfork.org/scripts/391979/746751/ParseUtil.js
// ==UserScript== // @name ParseUtil // @namespace hoehleg.userscripts.private // @version 0.2 // @description Utility methods for DOM and string parsing // @author Gerrit Höhle // @grant GM_xmlhttpRequest // ==/UserScript== /* jshint esnext: true */ const ParseUtil = { getPageAsync: (url, onSuccess, onError = () => {}) => { return GM_xmlhttpRequest({ method: 'GET', url: url, onload: (resp) => { resp.html = new DOMParser().parseFromString(resp.responseText || "", 'text/html'); switch (resp.status) { case 200: case 304: onSuccess(resp); return; default: onError(resp); return; } }, onerror: onError }); }, parseInt: (str, maxIntPlaces = 1, fallbackValue = null) => { let regex = "\\d"; if (maxIntPlaces > 1) { regex += "{1," + maxIntPlaces + "}"; } return ParseUtil.parseIntWithRegex(str, new RegExp(regex), fallbackValue); }, parseFloat: (str, maxIntPlaces = 1, maxDecPlaces = 0, fallbackValue = null) => { let regex = "\\d"; if (maxIntPlaces > 1) { regex += "{1," + maxIntPlaces + "}"; } if (maxDecPlaces > 0) { regex += "\\s?[,\.]?\\s?\\d{0," + maxDecPlaces + "}"; } return ParseUtil.parseFloatWithRegex(str, new RegExp(regex), fallbackValue); }, parseIntWithRegex: (str, regex, fallbackValue = null) => { const match = ParseUtil.parseStrWithRegex(str, regex); const value = parseInt(match); return Number.isNaN(value) ? fallbackValue : value; }, parseFloatWithRegex: (str, regex, fallbackValue = null) => { const match = ParseUtil.parseStrWithRegex(str, regex, "").replace(",","."); const value = parseFloat(match); return Number.isNaN(value) ? fallbackValue : value; }, parseStrWithRegex: (str, regex, fallbackValue = null) => { const match = regex.exec(str || ""); return (match && match.length >= 1) ? match[0] : fallbackValue; } };