繁体   English   中英

无法理解这个正则表达式

[英]Trouble understanding this regular expression

 let name = "harry"; let text = "Harry is a suspicious character."; let regexp = new RegExp("\\b(" + name + ")\\b", "gi"); console.log(text.replace(regexp, "_$1_")); // → _Harry_ is a suspicious character.

这是我没有得到的代码部分(“+名称+”)。 为什么不只是(名字)? (name) 应该与 ("harry") 本质上是一样的吗? 为什么这不起作用? 为什么里面有 + 运算符? 它是一种连接的尝试吗?

RegExp 是一个构造函数。 这是一个接受字符串 arguments 的 function。 字符串不是正则表达式。 您可以使用控制台更好地理解它,这里:

在此处输入图像描述

看看在构造函数执行之前,它的 arguments 中的所有动作都应该首先执行,包括串联。

看看 RegExp function 的第一个参数是如何变成你所期望的? + name +基本上将字符串变量连接到显式内联字符串。 这可能会为您澄清串联: https://masteringjs.io/tutorials/fundamentals/string-concat

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM