繁体   English   中英

如何在Node.js中获取正则表达式匹配的字符串

[英]How to get regex matched string in nodejs

我有一个问题。 我有一个包含模式的字符串,如果字符串包含该模式,则应将其存储在变量中。

var pattern = new RegExp(/@([0-9]+)/i);
if(pattern.test('@2 ajshfd @32 asd')
// here i need to store the matched string inside a variable and replace it with another string.

例如:-输入:-@ 2 ajs @ 32 hfdasd输出:-嗨ajs你好hfdasd

需要帮忙。 提前致谢。

编辑:根据问题更改进行更新
您可以尝试2个步骤,首先exec ,然后replace

 let pattern = new RegExp(/@(\\d+)/i) let str = '@2 ajshfd @32 asd' let arrOld = [] let arrNew = ['Hi', 'hello'] let m do { m = pattern.exec(str) if (m) { arrOld.push(m[1]) str = str.replace(pattern, arrNew.shift()) } } while (m) console.log(arrOld) console.log(str) 

如果字符串与您的模式匹配,则可以使用']'进行拆分。 这将创建一个数组。 您可以在该数组中选取第二个值,并在其后附加“ Hi”

 var pattern = new RegExp(/@\\[([0-9]+)\\]/i); var str = '@[2] ajshfdasd'; if(pattern.test(str)){ var name = 'Hi ' + str.split(/\\] /)[1]; console.log(name) } 

不清楚您要做什么。 但是,您是否了解String.prototype.replace()? 也许您可以在学习时找到答案。

暂无
暂无

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

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