2016-12-09 13 views
1

文字列内の一致の配列を取得したいと思います。現在、私の文字列はメディアクエリです。私は1つのメディアクエリは次のようになります、メディアクエリですべての新しい行を削除:JavaScript regexは文字列内のすべての一致を取得します

@media (max-width: 1200px) { .container { padding-left: 0px; } .bundles {padding-right:10px} } 

私が何をしたいのか自分のスタイル属性を含むメディアクエリーからすべてのクラスを取得することです。だから私は、次のように見える配列をしたいと思います:

[".container { padding-left: 0px; }", ".bundles {padding-right:10px}"] 

これは私の試みです:

var identifiers = mediaQuery.match(/\.(.*)}/); 

は私が私のすべての一致を与えるだろうという仮定match下にありました。しかし、私は1試合しか得ていないので、何か間違ったことをする必要があります。それは単純なクラスではなく、IDまたは任意の複雑なCSSセレクタを見つけること

/\.\w+\s*\{[^\}]+\}/ 

注:

+0

'(。*)'の代わりに '(。*?)'を使用してください。http://stackoverflow.com/questions/2301285/what-do-lazy-and-greedy-mean-in-the-context-正規表現の – chiliNUT

答えて

1

あなたは

var identifiers = mediaQuery.match(/\.(.*?)}/g); 

のように識別子(グローバル用)gを使用する必要があるドキュメントhereを参照してください。また、@chiliNUTのコメントで述べたように、正規表現が貪欲でないためには、.*の代わりに.*?を使用する必要があります。詳細については、hereを参照してください。

2

はこれを試してみてください。あなたがあなたの質問にクラスを書いたので、正規表現はうまくいくはずです。あなたは、より複雑な一致が必要な場合は、あなたの質問を向上ANS私は私の答えを改善します:)

関連する問題