2016-03-31 3 views
-1

Ich habe ein Array, das verschiedene Zeichenfolgen enthält. Ich möchte alle Nichtwörter in der Zeichenfolge entfernen, die mit der Regex übereinstimmen.Entfernen Sie Zeichenfolgen aus einem Array, wenn sie Regex in Javascript übereinstimmen

Ich möchte alle Nichtwörter entfernen, die mit der Regex übereinstimmen, aber die Zeichenfolge beibehalten, einschließlich der Leerzeichen.

newarray = ['I want to play football not watch it yeah', 'Leeds play the worse football'] 

Ich bin mir nicht sicher, wie das geht.

+1

Sie das Array iterieren können, Ihre regex anwenden und .splice() Funktion –

+0

Beachten Sie, dass Ihre aktuelle Regex nicht die Verwendung ':' am Ende der ersten Saite –

+0

@ Gonzalo.- Splice ist definitiv nicht die richtige Methode, um Brocken aus einer Saite zu entfernen. – ssube

Antwort

2

Es klingt wie Sie das Array mit einem String replacemap wollen:

myregex = /\W+\s/gi; 
newarray = myarray.map(function (str) { 
    return str.replace(myregex, ''); 
}); 
1

verwenden RegEx:

(\s[^\w ]|[^\w ]) 

Live Demo on RegExr

Sie würden verwenden Sie es auf Ihrem Array mit .replace() wie folgt:

MyRegex = /(\s[^\w ]|[^\w ])/gi; 
NewArray = MyArray.map(function(string) { 
    return string.replace(MyRegex, '') 
}) 

MyArray = ['I want to play football , not watch it yeah:', 'Leeds: play the/worse football'] 
 

 
MyRegex = /(\s[^\w ]|[^\w ])/gi 
 

 
NewArray = MyArray.map(function(string) { 
 
    var NewString = string.replace(MyRegex, '') 
 
    document.write(NewString + '<br>') 
 
    return NewString 
 
})

+0

Wie ändere ich die Regex, um Wörter nicht zu entfernen, die das Symbol @ enthalten. Zum Beispiel "@regex" –

Verwandte Themen