如何从split中获取路径中的字符串?

时间:2017-05-26 13:58:22

标签: javascript jquery

它无法在stackoverflow代码段上运行,但如果您尝试使用本地代码,则会看到它会起作用。

js给我一个结果

cdn=//cdn.files.com/web

但我不想这一行

cdn=

js必须在cdn=之后给我,我的意思是结果必须像这样

//cdn.files.com/web

我的所有js都在下面,所以怎么做?

var scripts = document.getElementsByTagName('script');
var index = scripts.length - 1;
var myScript = scripts[index];
// myScript now contains our script object
var queryString = myScript.src.replace(/^[^\=]+\??/,'');

alert(decodeURIComponent(queryString));
<script src="//domain.com/web/Assets/js/main.js?cdn=%2f%2fcdn.files.com%2fweb"></script>

<p></p>

5 个答案:

答案 0 :(得分:2)

将字符串拆分为'?cdn='并获取之后的部分(结果数组中的第二个元素,索引为1)。

var queryString = myScript.src.split('?cdn=')[1];

仅供参考:如果只有一个网址参数,那么您只需使用=cdn=进行拆分。

答案 1 :(得分:2)

&#13;
&#13;
       var s = "cdn=//cdn.files.com/web";
     
       s2 = s.substring(s.indexOf("cdn=")+4,s.length);
    
       alert(s2);
&#13;
&#13;
&#13;

这将从字符旁边的索引子串到你的字符串结束:)

修复并测试

答案 2 :(得分:1)

您可以使用split

yourvariable.split('=');

因此,无论您对GET的参数如何,奇数参数都会得到您想要的结果。

PS:更喜欢= char,因为你可以使用你想要的任何参数进入src给出的链接。

答案 3 :(得分:1)

正则表达式解决方案

&#13;
&#13;
var src = 'cdn=//cdn.files.com/web';
var url = src.replace(/^([^\=]+=)(.*)$/, '$2');
console.log(decodeURIComponent(url));
&#13;
&#13;
&#13;

带有解释的

DEMO

答案 4 :(得分:1)

为什么不能在正则表达式中使用^.+?cdn=

这会在cdn=

之后为您提供字符串

var myScript = '//domain.com/web/Assets/js/main.js?cdn=%2f%2fcdn.files.com%2fweb';
var queryString = myScript.replace(/^.+?cdn=/, '');
console.log(decodeURIComponent(queryString));