2017-12-22 8 views
2

この文字列をカンマ '、'に基づいて分割する方法を見つける必要があります。RegExpで分割します

["saleHours.sunTo(saleHours.satTo, saleHours.satFrom)", saleHours.funTest(saleHours.sunFrom)"]

ないこの:

["saleHours.sunTo(saleHours.satTo", " saleHours.satFrom)", " saleHours.funTest(saleHours.sunFrom)"]

"saleHours.sunTo(saleHours.satTo, saleHours.satFrom), saleHours.funTest(saleHours.sunFrom)" 

は、しかし、これは望ましい結果です。

だから私は何とか '()'の中でカンマをエスケープする必要があります。

ご協力いただきありがとうございます。

+0

興味があるだけ:あなたがやってを計画して何をすべきかを結果は?これらの行はコードのように見えます... – Cerbrus

+0

はい、私はテンプレートエンジンで作業していますが、何とかユーザーが関数を呼び出そうとしていることを登録する必要があります。私は実際にこれを釘付けに近づいていますが、悲しいことにネストされた機能は私が現在苦労しているものです –

+0

それはまあまあ疑わしいと思われます...正直に言うと、ユーザーが何を入力しているかを検証することに慎重にしてください。 – Cerbrus

答えて

3
var input = "saleHours.sunTo(saleHours.satTo, saleHours.satFrom), saleHours.funTest(saleHours.sunFrom)"; 

    var m = input.split(/\),/); 
    var l = m.length; 
    for(i in m) 
    { 
     if(i<l-1) 
      m[i] = m[i]+")"; 
    } 

    console.log(m); 

出力:

[ 'saleHours.sunTo(saleHours.satTo, saleHours.satFrom)', 
    ' saleHours.funTest(saleHours.sunFrom)' ] 
+1

正しく動作するようです。しかし、私は結果をトリミングすることも提案します。 – Cerbrus

+1

これは私が大変ありがとうございます。 –

-1

ないあなたが他の要件を持っていますが、このコードは、最後のコンマで文字列を分割した場合を確認します。

str.split(/[\s,]+/) 
+0

これ以上の要素がある場合、これは機能しません。 – Cerbrus

+0

彼は彼が持っていたとは言わなかった。 –

+0

ありがとう、リチャード・モレー、はい、私はもっと明確にすべきでした。考え方は、そこにいくつの要素があるかにかかわらず、外部コンマに基づいて文字列を分割することでした。 –

関連する問題