我有一个js字符串,例如:
"h" + "e" + "l" + "l" + "o"
它是从正则表达式查询派生的。字符串出现在 [..] 之间,因此我使用以下方法来派生它:
var txt = '"blahblahblah["h"+"e"+"l"+"l"+"o"]foobarfoobarr"';
var re = /[^[]]+(?=])/g;
var squareParen = re.exec(txt); // squareParen[0] contains ' "h" + "e".. etc'
// i assumed by assigning the string to a var
// it would show me the product of its output
var result = squareParen[0];
console.log (result);
现在,按照我在这里的问题,如果我对字符串进行硬编码(作为测试)并分配它,当我输出到控制台时,它会按预期读取"hello"。但是,当我使用分配给变量的正则表达式查询的输出时,它会按原样输出结果,即"h"+"e"+"l"+"l"+"o"而不是"hello"。
我很困惑为什么。
存储在 result
中的值实际上是一个字符串,如下所示:
'"h"+"e"+"l"+"l"+"o"'
这与表达式 "h"+"e"+"l"+"l"+"o"
不同;表达式是一系列计算结果为字符串"hello"
的字符串连接。
谨慎使用console.log
的输出作为确定的指南;它以一种具有美学价值但并不总是精确的方式呈现给定的值。
我很好奇你到底想做什么。