2011-07-09 5 views
4

私はjavascriptで次の正規表現を持っています。私はその文字列に一致させたいので、そのproduct (,|x) quantity, each priceです。次の正規表現はこれを行います。しかし、1つの要素だけの配列を返します。最初に一致する文字列全体を返す配列が必要です。次に商品、数量、各価格が続きます。javascriptで正規表現の別々の部分を取得する

// product,| [x] quantity, each price: 
var pQe = inputText.match(/(^[a-zA-z -]+)(?:,|[ x ]?) (\d{0,3}), (?:each) ([£]\d+[.]?\d{0,2})/g); 

(、| x)は、コンマまたはXが続くことを意味、それは私がそれを行うことができますどのようにice-cream, 99, $99または

ice-cream x 99, $99と一致しますか?

+1

私は/ gを削除しなければならないことが判明し、/ iに変更しました。とにかくみんなありがとう。私は登録されていないので、誰かこの質問を削除してもらえますか? – heyumar

答えて

2

RegExpオブジェクトのexec関数を使用します。そのために、あなたは次の構文を変更する必要があります:試合の最初の要素が含まれています返される配列の

var pQe = /(^[a-z ... {0,2})/g.exec(inputText) 

素子1、要素2は2番目を含み、かつます。文字列が正規表現と一致しない場合は、nullを返します。

+0

execを使用するように切り替える必要はありません。彼らが使用していたマッチ関数もマッチの配列を返します。 – jfriend00

関連する問題