0

私はそのようなパターンの文字列をたくさん持っています

/ucwa/oauth/v1/applications/101507538841/people/adan.maddox@dc.com/presence

正規表現を使用して次のようなメールを取得するにはどうすればよいですかadan.maddox@dc.com

このコードを試してみましたが、うまくいきましたが、良い方法ではないと感じています。

    var y = myString.substring(0, myString.lastIndexOf("/presence"));
    var email = y.substring(y.lastIndexOf("people/") + 7);
4

3 に答える 3

0

以下は少し節約です:

var str = "/ucwa/oauth/v1/applications/101507538841/people/adan.maddox@dc.com/presence";
var n = str.match(/[^\/]*@[^\/]*/);

このように、メールアドレスのパターンはそれほど重要ではなく、文字列内のメールアドレスの位置を気にする必要はありません...

これはおそらくあなたのパターンに最もよく一致します。

パターンから複数の電子メールアドレスを抽出したい場合は、次のようにすることもできます。

var n = str.match(/[^\/]*@[^\/]*/g);

したがって、前述の奇妙なアドレスでさえ:

var str = 'ucwa/oauth/v1/applications/101507538841/\"very\".unusual"@strange.example.com/people/adan.maddox@dc.com'

あなたに配列をもたらします:

[""very".unusual"@strange.example.com", "adan.maddox@dc.com"]

参照: http://jsfiddle.net/SnZxP/2/

于 2013-09-29T00:24:59.323 に答える