Я хочу выполнить замену переменных на строку (я уже исключил шаблонные литералы, потому что строка должна быть сохранена и оценена позже).javascript - заменить в строковый шаблон, но поймать недостающие переменные
Усы или что-то в этом роде похоже на соперника, но я хочу знать, была ли замена незавершенной. В этом случае, это производить URLs, поэтому недостающие части означают недопустимые URLs:
тестирование этого в узле:
var Mustache = require('mustache');
var result = Mustache.render("/someurl/{{path1}}/{{path2}}/", {path1:"my-path-to-1"})
console.log(`result:${result}:`)
Это происходит без проблем, но в результате URL бесполезно, потому что Усы молча заменили отсутствует path2 с пустой строкой. То, что я хотел бы видеть, - это исключение, которое бросает (лучше всего) или не может легко распознать, что не все было заменено.
Примечание: строка шаблона является произвольной, а также содержимым объекта подстановки.
выход:
result:/someurl/my-path-to-1//:
Это эквивалентно Python, что я ищу:
res = "/someurl/%(path1)s/%(path2)s/" % {"path1":"my-path-to-1"}
выход:
KeyError: 'path2'