我有一个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);
现在,按照我的问题here,如果我硬编码我的字符串(作为测试)并分配它,当我输出到控制台时,它按预期读取'hello'。但是,当我使用分配给变量的正则表达式查询的输出时,它按原样输出结果,即“h”+“e”+“l”+“l”+“o”而不是“hello”。< / p>
我很困惑为什么。
答案 0 :(得分:0)
您在result
中存储的值实际上是一个字符串,如下所示:
'"h"+"e"+"l"+"l"+"o"'
与表达式 "h"+"e"+"l"+"l"+"o"
不同;该表达式是一系列字符串连接,其值为"hello"
。
谨慎使用console.log
的输出作为权威指南;它以一种美学上有价值的方式呈现给定的值,但并不总是精确的。
我很好奇你真正想做的事情。