あいつの日誌β

働きながら旅しています。

Javascript で複数ある正規表現のいずれかがマッチしているものを取得する

以下のように Javascript の switch 文を使おうかなと思いました。

http://qiita.com/piyohiko/items/a84648599eba7697675f

なんですが、判定したいだけじゃなく、マッチした要素を抽出したいのでなんとなく OR 演算子を使いました。

const githubRegex = new RegExp("https://github.com/([^/]*)")
const bitBucketRegex = new RegExp("https://bitbucket.org/([^/]*)")
const url1 = "https://github.com/github-user"
const url2 = "https://bitbucket.org/bitbucket-user/"

function extractUserName(url) {
  const result = githubRegex.exec(url) || bitBucketRegex.exec(url)
  if (!result) {
    return
  }
  return result[1]
}

console.log(extractUserName(url1)) // github-user
console.log(extractUserName(url2)) // bitbucket-user

おしまい。