Javascript:将带有通配符的路径保存到变量中

Javascript:将带有通配符的路径保存到变量中,javascript,regex,variables,wildcard,Javascript,Regex,Variables,Wildcard,我想将带有通配符的路径保存到带有JS的变量中。路径如下所示: 09328402984923kjh234243/2/somename.xml 路径的第一部分和第二部分可能会更改,因此我需要使用一些通配符,因为文件夹名称是不可预测的 我用RegEx做过类似的尝试 var position = '\.?/\.?/somename.xml'; 我一直在关注这个问题,在stackoverflow(或其他地方)上找到的每个样本都不包括我的情况。我甚至不确定正则表达式是否能解决我的问题。。。 是否可以将带

我想将带有通配符的路径保存到带有JS的变量中。路径如下所示:

09328402984923kjh234243/2/somename.xml
路径的第一部分和第二部分可能会更改,因此我需要使用一些通配符,因为文件夹名称是不可预测的

我用RegEx做过类似的尝试

var position = '\.?/\.?/somename.xml';
我一直在关注这个问题,在stackoverflow(或其他地方)上找到的每个样本都不包括我的情况。我甚至不确定正则表达式是否能解决我的问题。。。 是否可以将带有通配符的路径保存到变量中?如果可能的话,正则表达式是正确的方法吗


提前感谢

我不确定您最终要完成什么,但是如果您需要“动态替换”字符串中的占位符,请使用Javascripts
string.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的结果

我不确定最终要实现什么,但是如果需要“动态替换”字符串中的占位符,请使用Javascripts
string.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
的结果,我认为您可能要查找的正则表达式是
^(.+?)\/(.+?)\/somename\.xml$
。不知道你想用它做什么。

我想你可能要找的正则表达式应该是
^(+.+?)\/(.+?)\/somename\.xml$
。但是,不知道您想用它做什么。

如果您以字符串形式开始路径,并想用JavaScript提取两个文件夹部分,您可以使用它

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

var folders = path.match(regex)
然后,您将拥有值为
09328402984923kjh234243/
文件夹[0]
,以及值为
2/
文件夹[1]


正则表达式使用结尾处的进行全局匹配并拾取所有匹配。它目前也只与文件夹名称中的字母数字字符相匹配。

如果您以字符串形式开始路径,并希望使用JavaScript提取两个文件夹部分,则可以使用

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

var folders = path.match(regex)
然后,您将拥有值为
09328402984923kjh234243/
文件夹[0]
,以及值为
2/
文件夹[1]



正则表达式使用结尾处的进行全局匹配并拾取所有匹配。它目前也只匹配文件夹名称中的字母数字字符。

不知道你在问什么。您打算如何使用
位置
变量?您使用路径的目的是什么?这两个文件夹值从何而来?如果要保存正则表达式,请使用/而不是引号:
var position=/\.?/\.?/somename.xml/--虽然我不确定这是否回答了您的问题,因为正如其他人所说的,很难理解您想要的结果。好的,我将尝试更好地解释它:我使用position变量获取xml文件的位置以读取它
$。get(position,function(XMLmediaArray)
现在的问题是,包含文件夹和xml文件的包是动态生成的,并且可以更改,因此我需要一个变量,其中包含某种通配符,如/*/*/somename.xml,因为结构总是相同的。我不想每次新生成文件夹时都要调整该变量。不知道怎么办你在问。你打算如何使用你的
position
变量?你使用路径做什么?这两个文件夹值从何而来?如果你想保存正则表达式,请使用/而不是引号:
var position=/\.?/\.?/somename.xml/;
——尽管我不确定这是否回答了你的问题,因为正如其他人所说的,这是错误的d来理解您想要的结果。好的,我将尝试更好地解释它:我使用position变量获取xml文件的位置,以读取它
$。get(position,function(XMLmediaArray)
现在的问题是,包含文件夹和xml文件的包是动态生成的,并且可以更改,因此我需要一个包含某种通配符的变量,如/*/*/somename.xml,因为结构总是相同的。我不希望每次新生成文件夹时都必须调整该变量。这不是e这正是我想要的(见我上面的评论)@Lena:我仍然不知道你想要做什么。”(…)所以我需要一个变量出于什么目的?您实际上想要做什么?变量不是绝对必要的。我只是认为使用变量会更容易。也可以在此处直接使用通配符的路径
$。get(*/*/somename.xml,function(XMLmediaArray)
通配符是必需的,因为路径应该适合23423jf/2/somename.xml和3234jf/1/somename.xml,因为路径可以change@Lena:如果我没弄错的话,问题归根结底是,没有一种方法不是你自己写的,也没有一种方法不是理解字符串语义的人写的,它不能用
“*/*/some.xml”
。因此,只将这样一个通配符字符串传递给
.get()
,没有任何意义。我能看到的唯一意义是,如果您有这些“部分”“数据作为变量,你想从这些变量中创建整个字符串。我在上面回答了它的工作原理。如果我仍然没有理解你,请再来。我想我刚刚了解到Javascript不能做我想让它做的事情。我想让变量中的通配符让Javascript“查找”正确的路径,因为我不知道。就像在批处理中一样,当您执行/*/.xml之类的命令时。很抱歉,我的问题不够清楚。这不是我的本意(请参见上面的评论)@Lena:我仍然不知道您想要做什么。“(…)因此我需要一个变量…”为了什么目的?你到底想做什么?变量不是绝对必要的。我只是想它应该是e