まず、問題の概要を理解しましょう。この問題では、与えられた文字列が特定のパターンに一致するかどうかを判定する必要があります。具体的には、文字列が 'Mr.
解法の一つは、JavaScript の正規表現を使用する方法です。正規表現は、パターンに一致する文字列を効率的に検索するための強力なツールです。
以下は、この問題の解法のコード例です。
function getUsername(input) {
const regex = /^(Mr\.|Mrs\.) ([A-Z][a-z]+)$/;
const match = input.match(regex);
if (match) {
const title = match[1];
const name = match[2];
return { title, name };
} else {
return null;
}
}
// 使用例
const input1 = 'Mr. Smith';
const result1 = getUsername(input1);
console.log(result1); // { title: 'Mr.', name: 'Smith' }
const input2 = 'Mrs. Johnson';
const result2 = getUsername(input2);
console.log(result2); // { title: 'Mrs.', name: 'Johnson' }
const input3 = 'Dr. Brown';
const result3 = getUsername(input3);
console.log(result3); // null
上記のコードでは、getUsername
関数が与えられた文字列からタイトルと名前を抽出します。関数内で使用される正規表現 /^(Mr\.|Mrs\.) ([A-Z][a-z]+)$/
は、文字列が 'Mr. match
配列が返され、その中からタイトルと名前を取得して返します。一致しない場合は null
を返します。
このように、正規表現を使用することで、文字列のパターンマッチングを簡潔かつ効率的に行うことができます。Hackerrank の 10 Days of JavaScript の問題を解く際には、正規表現を上手に活用して解法を見つけてみてください。