如何动态创建正则表达式以在 .match Javascript 中使用?

Ale*_*u R 9 javascript regex

我需要动态创建一个正则表达式以在匹配函数 javascript 中使用。这怎么可能?

var p = "*|";
var s = "|*";
"*|1387461375|* hello *|sfa|* *|3135145|* test".match(/"p"(\d{3,})"s"/g)
Run Code Online (Sandbox Code Playgroud)

这将是正确的正则表达式: /\*\|(\d{3,})\|\*/g

即使我向 p 和 s 添加反斜杠它也不起作用。是否可以?

Dar*_*inn 23

RegExp是您的朋友:

var p = "\\*\\|", s = "\\|\\*"

var reg = new RegExp(p + '(\\d{3,})' + s, 'g')

"*|1387461375|* hello *|sfa|* *|3135145|* test".match(reg)
Run Code Online (Sandbox Code Playgroud)

使动态正则表达式全局化的关键是将其转换为RegExp对象,并'g'作为第二个参数传入。

工作示例