2016-03-31 7 views
-1

異なる文字列を含む配列があります。私は、正規表現に一致する文字列内のすべての非単語を削除したい。javascriptで正規表現と一致する文字列を配列から削除する

myarray = ['I want to play football , not watch it yeah:', 'Leeds: play the/worse football'] 
myregex = /\W+\s/gi 

正規表現に一致するすべての非キーワードを削除しますが、スペースを含めて同じ文字列を維持したいと考えています。

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

私はこれを行う方法がわかりません。

+1

あなたは、配列を反復あなたの正規表現を適用して、現在の正規表現が一致しないこと.splice()関数 –

+0

注意を使用することができます ':'終わりにあなたの最初の文字列の –

+0

@ Gonzalo.-スプライスは文字列からチャンクを取り出す正しい方法ではありません。 – ssube

答えて

2

あなたは文字列replaceを使用してアレイをmapしたいようですね:

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

この正規表現を使用し:あなたのアレイ上で、それを使用することになり

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

Live Demo on RegExr

.replace()を使用してように:

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

正規表現を修正して@を含む単語を削除しないでください。たとえば、 "@regex" –

関連する問題