Javascript中的正则表达式匹配路由

时间:2016-10-20 10:17:29

标签: javascript regex

我想使用正则表达式,在Javascript中找到匹配的字符串。

例如:

/bla/* should match /bla/something
/bla/*/* should match /bla/something/someOhther
/bla/*/*/blub should match /bla/something/someOhther/blub

所以实际上*是占位符,可以是任何东西。我没有找到一个在正则表达式中做到这一点的好方法,但我很确定这是一个简单的方法..你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

/替换为\/,将*替换为.*,它应与

匹配
"/bla/something/someOhther".match(/\/bla\/.*\/.*/)

并通过执行

将输入的正则表达式转换为实际的正则表达式
"/bla/*/*".replace(/\*/g, ".*").replace(/\//g, "\\/");

修改

要确保.与整个字符串不匹配,请将.替换为[^/]

"/bla/something/someOhther".match(/^\/bla\/[^\/]*\/[^\/]*/$) ; //will match

但这不匹配

"/bla/something/someOhther/hj".match(/^\/bla\/[^\/]*\/[^\/]*/$) ; //will not match due to extra /hj

并通过执行

将输入的正则表达式转换为实际的正则表达式
"/bla/*/*".replace(/\*/g, "[^\/]*").replace(/\//g, "\\/");