0

我想将带有通配符的路径保存到带有 JS 的变量中。路径看起来像这样:

09328402984923kjh234243/2/somename.xml

路径的第一部分和第二部分可以更改,所以我需要在那里有一些通配符,因为文件夹名称是不可预测的。

我用 RegEx 尝试过这样的事情

var position = '\.?/\.?/somename.xml';

我现在一直在解决这个问题,我在stackoverflow(或其他地方)上找到的每个样本都没有涵盖我的情况。我什至不确定 RegEx 是否可以解决我的问题...是否可以将带有通配符的路径保存到变量中?如果可能的话,RegEx 是正确的方法吗?

提前致谢

4

3 回答 3

1

我不确定您最终要完成什么,但如果您需要“动态替换”字符串中的占位符,请使用 JavascriptsString.prototype.replace方法。

例子:

var position = 'ph1/ph2/somename.xml';

var path_one = '09328402984923kjh234243',
    path_two = '2';

然后我们可以去

position = position
               .replace( 'ph1', path_one )
               .replace( 'ph2', path_two );

这将产生09328402984923kjh234243/2/somename.xml

于 2012-12-06T01:24:14.030 回答
1

我认为您可能正在寻找的正则表达式是^(.+?)\/(.+?)\/somename\.xml$. 不知道你想用它做什么。

于 2012-12-06T01:24:32.540 回答
1

如果您从路径作为字符串开始,并且想要使用 JavaScript 提取两个文件夹部分,您可以这样做;

var path = '09328402984923kjh234243/2/somename.xml'
var regex = /[0-9a-zA-Z]*\//g

var folders = path.match(regex)

然后你有folders[0]with the value09328402984923kjh234243/folders[1]with the value 2/

正则表达式在末尾使用g修饰符进行全局匹配并选择所有匹配项。它目前也只会匹配文件夹名称中的字母数字字符。

于 2012-12-06T01:38:33.670 回答