2016-09-16 5 views
1

Angenommen, diese Zeichenfolge zu haben:Wie Extrakt Zeichenfolge aus einem anderen String

http://192.168.56.101:4567/compose?p=/topic/3/werwerwerwer 

Ich brauche dies zu extrahieren:

/topic/3/werwerwerwer 

Am Ende muss ich 3 erhalten! Kann mir jemand helfen?

+7

Ihre Versuche posten .. –

+0

Wird die Struktur der Saite immer gleich sein? d. h. gleiche Schrägstriche und alle. Wenn dies der Fall ist, könnten Sie eine hässliche String-Suche durchführen, die auf das '/' abzielt, aber es ist möglicherweise nicht sehr wiederverwendbar oder modular. Schauen Sie in 'yourStr.split ('/')' sowie 'parseInt()', diese können von brauchbarem Wert sein. – Illdapt

Antwort

0

Wenn die Zeichenfolge eine URL und p ist der Parameterwert Sie abrufen versuchen Sie es wie folgt zu erreichen:

var string = 'http://192.168.56.101:4567/compose?p=/topic/3/werwerwerwer' 
function get(name, link){ 
    if(name=(new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)')).exec(link)) 
     return decodeURIComponent(name[1]); 
} 

var theValueOfp = get('p',string); 

http://jsfiddle.net/yb4se4cz/1/

1

Diese Ihr in der richtigen Weise setzen sollte. Nach dem Aufruf von getParam müssen Sie nur den regulären Ausdruck anwenden.

/** 
 
* Get the value of a querystring 
 
* @param {String} param The field to get the value of 
 
*/ 
 
var getParam = function (field, url) { 
 
    // this regex will match the first parameter with the given name and return 
 
    // into the group #1 the value 
 
    var reg = new RegExp('[?&]' + field + '=([^&#]*)'); 
 
    var string = reg.exec(url); 
 
    return string ? string[1] : null; 
 
}; 
 

 
var p = getParam("p", "http://192.168.56.101:4567/compose?p=/topic/3/werwerwerwer") 
 
if (p != null) { 
 
    var myRegexp = /^\/\w+\/(\d+)\/.*/; // The group #1 will extract the number 
 
    var match = myRegexp.exec(p); 
 
    alert(match[1]); // 3 
 
}

Verwandte Themen