JS正则表达式结果表达式赋值问题

js regex result expression assignment issue

本文关键字:赋值 问题 表达式 结果 正则表达式 JS      更新时间:2023-09-26

我有一个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的输出作为确定的指南;它以一种具有美学价值但并不总是精确的方式呈现给定的值。

我很好奇你到底想做什么。