它无法在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>
答案 0 :(得分:2)
将字符串拆分为'?cdn='
并获取之后的部分(结果数组中的第二个元素,索引为1
)。
var queryString = myScript.src.split('?cdn=')[1];
仅供参考:如果只有一个网址参数,那么您只需使用=
或cdn=
进行拆分。
答案 1 :(得分:2)
var s = "cdn=//cdn.files.com/web";
s2 = s.substring(s.indexOf("cdn=")+4,s.length);
alert(s2);
&#13;
这将从字符旁边的索引子串到你的字符串结束:)
修复并测试
答案 2 :(得分:1)
您可以使用split:
yourvariable.split('=');
因此,无论您对GET的参数如何,奇数参数都会得到您想要的结果。
PS:更喜欢= char,因为你可以使用你想要的任何参数进入src给出的链接。
答案 3 :(得分:1)
正则表达式解决方案
var src = 'cdn=//cdn.files.com/web';
var url = src.replace(/^([^\=]+=)(.*)$/, '$2');
console.log(decodeURIComponent(url));
&#13;
带有解释的
答案 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));