Node.js 如何使用 RegEx 对象回复,Hapijs
Node.js how to reply with RegEx object, Hapijs
我正在尝试将端点写入 return 我们在网络应用程序中使用的一组正则表达式,以从服务器端对其进行标准化。
const myRegExp: RegExp = /^\d{10}$/;
return reply(myRegExp);
问题是此回复在调用时以 {}
形式出现
如果我回复一个字符串、一个数字、一个对象,世界上任何东西......它都会按预期通过回复。回复一个 RegExp 类型的参数,returns 一个空对象 {}
如何在我的 Node / Hapi 端点发回原始 RegExp 正则表达式?
是的,我知道我可以用 myRegExp.source
回复,然后用 new RegExp(resp)
重新创建,但这似乎很愚蠢,除非我被迫这样做。
hapi returns 具有空对象的原因是正则表达式对象没有任何 public 属性。你可以通过你的控制台看到它。
> let x = new RegExp('/\d/')
> x
/\/d\//
> Object.keys(x)
[]
我认为正确的做法是 return myRegExp.source 然后在客户端代码中使用 new RegExp(resp)
并没有那么傻。
或者您可以 return 将您的正则表达式定义为字符串,例如
reply('/^\d{10}$/')
然后您可以通过 new RegExp(resp)
在您的客户端代码中使用它
我认为不可能直接从服务器到浏览器 returning 评估的 regexp 对象。也许你可以这样做;
reply(`const myRegExp = new RegExp(/^\d{10}$/);`).type("application/javascript");
现在您刚刚从服务器加载了一个 javascript,但我认为它没有用。
我正在尝试将端点写入 return 我们在网络应用程序中使用的一组正则表达式,以从服务器端对其进行标准化。
const myRegExp: RegExp = /^\d{10}$/;
return reply(myRegExp);
问题是此回复在调用时以 {}
形式出现
如果我回复一个字符串、一个数字、一个对象,世界上任何东西......它都会按预期通过回复。回复一个 RegExp 类型的参数,returns 一个空对象 {}
如何在我的 Node / Hapi 端点发回原始 RegExp 正则表达式?
是的,我知道我可以用 myRegExp.source
回复,然后用 new RegExp(resp)
重新创建,但这似乎很愚蠢,除非我被迫这样做。
hapi returns 具有空对象的原因是正则表达式对象没有任何 public 属性。你可以通过你的控制台看到它。
> let x = new RegExp('/\d/')
> x
/\/d\//
> Object.keys(x)
[]
我认为正确的做法是 return myRegExp.source 然后在客户端代码中使用 new RegExp(resp)
并没有那么傻。
或者您可以 return 将您的正则表达式定义为字符串,例如
reply('/^\d{10}$/')
然后您可以通过 new RegExp(resp)
我认为不可能直接从服务器到浏览器 returning 评估的 regexp 对象。也许你可以这样做;
reply(`const myRegExp = new RegExp(/^\d{10}$/);`).type("application/javascript");
现在您刚刚从服务器加载了一个 javascript,但我认为它没有用。