我正在尝试匹配特定目录之后的 URL 中的子目录:
然后将目录附加到匹配的字符串。
/applications/app1
应该是 /applications/app1/beta
/applications/app2/
应该是 /applications/app2/beta/
/applications/app2/settings
应该是 /applications/app2/beta/settings
/applications/app3?q=word
应该是 /applications/app3/beta?q=word
我是这样写的:
path = path.replace(/(\/applications\/(.*)(\/|\s|\?))/, '$1/beta');
但如果 app-name 在字符串的末尾则不起作用。
注意:我不知道应用名称我只知道它跟在/applications/
最佳答案
path.replace(/(\/applications\/[^/?]+)/g,'$1/beta');
经过深思熟虑,我更喜欢下面的:
path.replace(/(\/applications\/[^/?]+)($|\/|\?)(?!beta)/g,'$1/beta$2');
"/applications/app1/beta" -> "/applications/app1/beta"
"/applications/app1" -> "/applications/app1/beta"
"/applications/app1/settings" -> "/applications/app1/beta/settings"
"/applications/app1?q=123" -> "/applications/app1/beta?q=123"
匹配时会忽略/applications/beta
关于Javascript Regex替换url中的子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34451455/