2017-07-26 11 views
-1

Ich versuche, die Zeichenfolge ab * und endend auf * mit der Match-Funktion zu bekommen. Ich bekomme ein Array von Strings nicht eine Zeichenfolge. Mein Code istWie bekomme ich eine Zeichenfolge mit Match-Funktion in Javascript

Str="==Quotes==* We thought that he was going to be -- I shouldn't say this at Christmastime -- but the next messiah.** On [[Barack Obama]]" 

regE=/\* \w*/gi 
newArr=str.match(regE) 
console.log(newArr) 
+1

Spiel Sie alle Spiele gibt, was hast du erwartet? – Li357

+0

'regE = /\*(.*?)\*/; newArr = str.match (regE); console.log (neuArr [1]) ' –

Antwort

1

Ihre regex leicht ausgeschaltet war. Um zwischen zwei Sternchen übereinstimmen, die Sie suchen /\*([^*]*)\*/gi:

str = "==Quotes==* We thought that he was going to be -- I shouldn't say this at Christmastime -- but the next messiah.** On [[Barack Obama]]"; 
 
regE = /\*([^*]*)\*/gi; 
 
newArr = str.match(regE); 
 
console.log(newArr[0]);

Beachten Sie, dass .match() gibt ein Array Streichhölzer. Um die erste Übereinstimmung zu erhalten, können Sie einfach wie oben auf den ersten Index mit [0] zugreifen.

Hoffe, das hilft! :)

1

sollten Sie entweder:

  1. nicht gierige Spiel (Versuchen Sie, so kleiner String zu, wie es kann):

str = "==Quotes==* We thought that he was going to be -- I shouldn't say this at Christmastime -- but the next messiah.** On [[Barack Obama]]"; 
 
    regE = /\*.*?\*/gi; 
 
    newArr = str.match(regE); 
 
    console.log(newArr[0]);

  1. Gierige Übereinstimmung (Versuchen Sie, eine größere Zeichenfolge zu finden, als sie kann):

str = "==Quotes==* We thought that he was going to be -- I shouldn't say this at Christmastime -- but the next messiah.** On [[Barack Obama]]"; 
 
    regE = /\*.*\*/gi; 
 
    newArr = str.match(regE); 
 
    console.log(newArr[0]);

Verwandte Themen