LoginSignup
1
0

More than 1 year has passed since last update.

入力したメールアドレスをリンクに変える方法

Posted at

Rubyを勉強する一環で、入力したメールアドレスをリンクに変えるコードを書いてみました。

目次

  1. サンプルコード
  2. 正規表現で入力されたメールアドレスを抜き出す
  3. email_regexで抜き出したメールアドレスをリンクに変換する
  4. (確認)irbでRubyファイルを実行する
  5. 最後に

サンプルコード

Ruby
def replace_email_with_links(input_string)
  # メールアドレスの正規表現
  email_regex = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}\b/i
  # 入力文字列内のメールアドレスをリンクに変換
  result = input_string.gsub(email_regex) do |email|
    "<a href='mailto:#{email}'>#{email}</a>"
  end
  result
end
# テスト
input_string = "Hello, my email address is example@example.com. Please feel free to contact me."
puts replace_email_with_links(input_string)

正規表現で入力されたメールアドレスを抜き出す

以下のコードによって正規表現で入力をふるいにかけられます。

Ruby
  # メールアドレスの正規表現
  email_regex = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/i
  • 補足

    • \b:単語の境界を表す
    • [A-Za-z0-9._%+-]+:英数字、ドット、アンダースコア、パーセント、プラス、ハイフンの1文字以上の繰り返しを意味する
    • \.:メールアドレスのドメイン名とトップレベルドメインを区切るドットを意味する。なお、\は.をエスケープさせる文字として使用されている。.は、正規表現では任意の1文字にマッチする特殊なメタ文字であるが、.としてエスケープすることで、.をリテラル文字として扱うことができる。
    • /i:正規表現のフラグで、大文字小文字を無視することを示す。

email_regexで抜き出したメールアドレスをリンクに変換する

以下のコードでは、input_stringから、email_regexの条件に合う部分を抜き出し、その変数名をemailと置いている。その後、emailをリンク化している

Ruby
  # 入力文字列内のメールアドレスをリンクに変換
  result = input_string.gsub(email_regex) do |email|
    "<a href='mailto:#{email}'>#{email}</a>"
  end

最後に

今回は自らの勉強用に記述したコードを解説しました。Railsでなんとなく記載していることでしたが、細かく分解して読解しようとすると慣れるまでは少し厄介だと思うので、備忘録として記事にしました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0