我需要动态创建一个正则表达式以在匹配函数 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'作为第二个参数传入。
工作示例。
| 归档时间: |
|
| 查看次数: |
11173 次 |
| 最近记录: |