2016-07-28 10 views
0

に基づくサブストリングを取得します葉Javascriptを私は私がまだ</p> <pre><code>author = author.split('(')[1]; </code></pre> <p>しかし、これを使用することができます知っている</p> <p>[email protected](著)</p> <p>の価値を提供するRSSフィードを持つ文字

著)

私はちょうど別の分割を行うことができます実現

author = author.split(')')[0]; 

しかし、これを1行で行う方法はありますか?ここで

はあなたが正規表現でそれを行うことができ、私のコード

  var title = $(this).find('title').text(); 
      var author = $(this).find('author').text(); 
      author = author.split('(')[1]; 
      author = author.split(')')[0]; 
      var description = $(this).find('description').text(); 
      var guid = $(this).find('guid').text(); 
+0

'\((。+?)\)'この正規表現はあなたを助けることができます –

答えて

0

です。

var author = "[email protected] (Author)"; 
 
var result = author.replace(/.*\(|\)/g,"") 
 
console.log(result);

これは単に(と最後)前に、すべてを置き換えるん。

+0

魅力的なように働いています。 – onTheInternet

+0

@onTheチェックマークをクリックすることを忘れないでください:) – nicael

+0

するでしょう。必須の時間を待たなければならない。 – onTheInternet

0

文字列内の最後の文字だけを取り除きたいので、sliceメソッドを使用できます。最初のパラメータは開始位置(0から数えて)で、2番目のパラメータは終了位置です。負のインデックスを使用して、後方から数えることができます(たとえば、-1は最後の文字、-2は2番目の文字です)。

これを使用して、あなたが書くことができます:あなたは関数がすでにシングルでこれを行うために一緒にチェーンを持つことができます

var authorRegex = /^(.*)\s+\((.*)\)$/; 
var authorInfo = authorRegex.exec(author); 
var email = authorInfo[1]; 
var name = authorInfo[2]; 
+0

悪い考えではありませんが、作者の名前はさまざまです。だからうまくいきません。 – onTheInternet

+0

@onTheInternetこれはどの著者名でも動作します。 – Arnauld

+1

ブラケットが最後の文字である限り、これは私が説明したように-1構文を使用するため、常に機能します。 – Aurora0001

0

私はキャプチャグループと、正規表現を使用しますライン。代わりに

var author = $(this).find('author').text().split('(')[1].split(')')[0] 
0

author = author.split('(')[1].slice(0, -1); 
0

スプリットを使用するには、このケースでは、あなたは次のように置き換えると、正規表現を試みることができる:

author = author.replace(/^.+\(([^\(\)]+)\)[\s\t]*$/, '$1'); 

それは、文字列の末尾に()内のテキストを保存し、それを置き換えますそれは全体の文字列に。

関連する問題

 関連する問題