2017-09-20 2 views
1

Ich war Wunder der beste Weg man könnte nach einer bestimmten Phrase in einer Zeichenfolge suchen und dann alles danach nehmen und speichern Sie das in einer neuen Variablen. Zum Beispiel im Fall:So extrahieren Sie eine bestimmte Zeichenfolge in Javascript

var input= "123|ABC S|peter [email protected]!!234|George K|[email protected]"; 

erwartete Ausgabe ist:

peter [email protected],[email protected] 

Ich habe diesen Code versucht:

var input= "123|ABC S|peter [email protected]!!234|George K|[email protected]"; 
var result = input.match(/[a-z]+/gi); 
document.write(result); 
+0

Wenn die Eingabezeichenfolge in demselben Format sein wird, teilen Sie es und zu verwenden. var input = "123 | ABC S | peter [email protected] | 234|George K|[email protected]"; input = input.split ('|'), console.log (Eingabe [2], Eingabe [4]) –

+0

Ich muss nur E-Mail-Teil der Zeichenfolge extrahieren: peter s @ xyz.com, george.k @ xyz .com. können Sie mit Beispielcode vorschlagen. – geeta

+0

var input = "123 | ABC S | [email protected]@xyz.com!!234|George K|[email protected]"; input = input.split ('|'), console.log (input [2], input [4]) output dieses Codes ist peter [email protected] !! [email protected] erwartet wird: peter s @ xyz.com, george.k @ xyz.com – geeta

Antwort

0

Um nur E-Mails von Eingabestring zu extrahieren, versuchen Sie diesen

var input= "123|ABC S|peter [email protected]!!234|George K|[email protected]"; 
var result1 = input.match(/([a-zA-Z0-9._+-]+ [a-zA-Z0-9._+-][email protected][a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi); 
var result = input.match(/((\d*)+ [a-zA-Z0-9._+-][email protected][a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi); 
document.write(result1 + "," + result); 

fiddle

+0

Können Sie bitte diese Übereinstimmung erklären (input.match (/ ([a-zA-Z0-9 ._ + -] + @ [a-zA-Z0-9. _-] + \. [a-zA-Z0-9 ._-] +)/gi); erwarteter output ist: peter s @ xyz.com, george.k @ xyz.com und dieses code-ergebnis ist s @ xyz.com, george.k @ xyz.com Dank der genauen Ausgabe kann man das erklären (input.match (/ ([a-zA-Z0-9 ._ + -] + @ [a-zA-Z0 -9 ._-] + \. [A-zA-Z0-9 ._-] +)/gi); warum regex yiu zweimal hinzugefügt haben. – geeta

+0

überprüfen Sie meinen aktualisierten Code, den Sie genau erhalten können, was Sie wollen – Znaneswar

+0

Ja, ich bekomme genaue Ausgabe Danke, ich versuche zu verstehen, Regex, die Sie verwendet haben. – geeta

0

Sie können dazu auch String.Prototype.split verwenden.

var input= "123|ABC S|peter [email protected]!!234|George K|[email protected]"; 
 
var users=input.split('!!'); 
 
var output=''; 
 
users.forEach(function(d, i){ 
 
    details = d.split('|'); 
 
    output+=details[details.length - 1]; 
 
    if(i!==(users.length-1)) 
 
    output+=',' 
 
    } 
 
) 
 
console.log(output);

+0

Kannst du bitte diesen Teil erklären: users.forEach (Funktion (d, i) { Details = d.split ('|'); Ausgabe + = Details [Details.Länge - 1]; if (i! == (users.length-1)) Ausgang + = '' } – geeta

+0

Bitte siehe Dokumentation von 'split' bei https://developer.mozilla.org/en-US/docs/Web/ JavaScript/Reference/Global_Objects/String/split und 'forEach' unter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach. Es wird über alle Elemente iterieren und die E-Mail erhalten, indem es mit | geteilt wird als Trennzeichen und anhängen an die Ausgabevariable –

Verwandte Themen