1

正規表現テスターで正規表現をテストしましたが、うまくいきましたが、自分のコードではうまくいきませんでした。

var mail = "chdelfosse@gmail.com";
var regExp = new RegExp("@(.*?)\.");
document.write(regExp.exec(mail)) ;

私はこの結果を得る:

@g、

ドットの前にバックスラッシュを追加しようとしたところ、次のようになりました。

@gmail.,gmail

「@」と「。」も削除したかったのです。メールから" (?:@) "を使用しようとしましたが、動作しませんでした(正規表現テスターで)。

正規表現を使用するのは初めてですが、わかりません。なぜコンマがあるのですか?

4

3 に答える 3

2

この正規表現を使用してドメイン名を取得できます。

/@(.+)\./

ライブデモ

于 2012-11-16T01:04:16.053 に答える
1

別の方法で行うべきいくつかのこと:

  1. 文字列内のバックスラッシュを二重にエスケープして、RegExp コンストラクターまたは構文に切り替えるためにバックスラッシュが 1 つ残るようにする必要があり/regex here/ます。
  2. 括弧内のサブグループだけが必要な場合は、その特定のサブグループを参照する必要があります。

コードは次のとおりです。

var mail = "chdelfosse@gmail.com";
console.log(mail.match(/@(.*?)\./)[1]);
于 2012-11-16T01:03:27.870 に答える
1

正規表現よりも高速:

var emailAddress = "my.email@gmail.com";
var array_email = emailAddress.split("@");​​
alert('Account: ' + array_email[0] +'; Domain: ' + array_email[1]);​​​​​​​​​​​​​​​​​​​​​​​​​​
于 2012-11-16T01:06:30.357 に答える