Spr*_*der 1 javascript regex tostring
考虑以下 :
var a = 5;
var b = function ()
{
console.log (a + 5);
};
var c = b.toString();
Run Code Online (Sandbox Code Playgroud)
经过上述执行后,c将等于:
"function ()
{
console.log (a + 5);
}"
Run Code Online (Sandbox Code Playgroud)
我怎么能c等于:
"function ()
{
console.log (5 + 5);
}"
Run Code Online (Sandbox Code Playgroud)
代替?
我尝试了以下方法:
var a = 5;
var b = function ()
{
console.log ('<%a%>' + 5);
};
var c = b.toString().replace('<%a%>', a);
Run Code Online (Sandbox Code Playgroud)
但上面显然c等于:
"function ()
{
console.log ('5' + 5);
}"
Run Code Online (Sandbox Code Playgroud)
是否有其他方法来实现这个(javascript + RegEx)而不使用像underscore(具有已知template函数)的库?
基本上我正在尝试提出一个简洁的函数,它将函数转换为字符串,同时将该函数中存在的所有变量(具有硬编码值)替换为各自的值,而不使用任何变量.
谢谢
您可以通过更改第一个参数来修复您的代码段.replace:
var a = 5;
var b = function ()
{
console.log ('<%a%>' + 5);
};
var c = b.toString().replace("'<%a%>'", a);
Run Code Online (Sandbox Code Playgroud)
对于更通用的解决方案,您可能需要具有语法分析的更智能的解析器.
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |