2017-05-26 3 views
1

es funktioniert nicht auf stackoverflow Schnipsel, aber wenn Sie an Ihrem lokalen versuchen Sie sehen, es wird funktionieren.Wie bekomme ich einen String von Split in den Pfad?

js gib mir ein, dieses Ergebnis

cdn=//cdn.files.com/web 

aber ich nicht

cdn= 

js nach bedeuten, gib mir muss von cdn= zu dieser Linie möchte ich Ergebnis so

//cdn.files.com/web 

sein muss

meine alle js ist unten so wie das zu tun?

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

warum können Sie nicht 'verwenden ^. +?cdn = 'in deiner Regex? 'var queryString = meinskript.src.replace (/^.+? cdn = /, '');' das gibt dir Strings nach dem 'cdn =' –

Antwort

2

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

diese aus dem Index bis zum Ende von Ihnen Zeichenfolge neben gleich Zeichenstring wird :)

befestigt und getestet

+0

wirklich toll danke –

+0

@ani_css könnten Sie eine Antwort als beste Antwort setzen? Ich bin neu in der Community –

2

Split die Zeichenfolge von '?cdn=' und erhält das Teil nach diesem (zweiten Elemente in dem Ergebnis-Array, bei Index 1).

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

FYI: Wenn es nur eine URL param ist, dann können Sie einfach = oder cdn= zum Spalten verwenden.

+0

es funktioniert sehr gut Ich würde sehr gerne so können wir benutze das wie folgt = 'split ('=') [1];' Ich meine nach von '=' es funktioniert auch so, aber kann jedes Problem sein? –

+1

@ani_css: es wird funktionieren ... falls es mehrere URL-Parameter gibt, kann es Probleme verursachen –

1

Sie split verwenden können:

yourvariable.split('='); 

Also was auch immer Ihre Argumente in GET, das ungerade param wird Ihr gewünschtes Ergebnis erhalten.

PS: Bevorzugen Sie nur das Zeichen =, weil Sie mit jedem beliebigen Parameter arbeiten können, den Sie in Verbindung mit src geben möchten.

1

Lösung mit regex

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

DEMO mit Erklärung

+0

Lassen Sie mich wissen, wenn es hilft – MaxZoom

1

warum können Sie nicht ^.+?cdn= in Ihrem regex verwenden?

dies wird Ihnen Saiten nach dem 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));

Verwandte Themen