Пользователь
Мне необходимо проводить порядка 100т. операций или даже больше, в таком случае Function не будет особо приятным решением
15118 - время 50т. операций через Function()
1154 - время 50т. операций через calc()
В среднем моё решение в 8 раз быстрее
соглашусь и возможно даже это будет более быстрым решением, но для моей задачи требовалось отказаться и от eval и от Function.
Данный код гуляет на просторах интернета и вполне рабочий способ
const rgx = /(?:(?:^|[-+_*/])(?:\s*-?\d+(\.\d+)?(?:[eE][+-]?\d+)?\s*))+$/; function parse(str) { if (!rgx.test(str)) return 'invalid entry!' return Function('use strict'; return (<span class="hljs-subst">${str}</span>))() }
прошу прощения выражение в тексте выше, не тот на котором проводил тесты с разными примерами кода, потому получилось несколько глупо
Мне необходимо проводить порядка 100т. операций или даже больше, в таком случае Function не будет особо приятным решением
15118 - время 50т. операций через Function()
1154 - время 50т. операций через calc()
В среднем моё решение в 8 раз быстрее
соглашусь и возможно даже это будет более быстрым решением, но для моей задачи требовалось отказаться и от eval и от Function.
Данный код гуляет на просторах интернета и вполне рабочий способ
const rgx = /(?:(?:^|[-+_*/])(?:\s*-?\d+(\.\d+)?(?:[eE][+-]?\d+)?\s*))+$/; function parse(str) { if (!rgx.test(str)) return 'invalid entry!' return Function('use strict'; return (<span class="hljs-subst">${str}</span>))() }
прошу прощения выражение в тексте выше, не тот на котором проводил тесты с разными примерами кода, потому получилось несколько глупо