名詞の不定冠詞(「a」と「an」)を判別するために存在するjavascriptライブラリはありますか?
次のような単純な正規表現から始めることができます。
var pattern = /^([aeiou])/i;
pattern.test("umbrella");
ただし、これはfalseを返す必要がある「user」のようなケースを処理しません(「ユーザーがボタンをクリックした」とは言いません)。
名詞の不定冠詞(「a」と「an」)を判別するために存在するjavascriptライブラリはありますか?
次のような単純な正規表現から始めることができます。
var pattern = /^([aeiou])/i;
pattern.test("umbrella");
ただし、これはfalseを返す必要がある「user」のようなケースを処理しません(「ユーザーがボタンをクリックした」とは言いません)。
Eamon Nerbonneによる次のJavascriptライブラリは、探しているものであるはずです:http:
//home.nerbonne.org/A-vs-An/AvsAn.js
これは実際には、SOに関する同様の質問への回答として作成されました:
https ://stackoverflow.com/a/1288473/505154
ここで使用したアプローチは、ウィキペディアをダウンロードしてフィルタリングし、プレフィックスデータベースを作成してa / anを決定することでした。これは、ほとんどのルールベースのシステムよりも正確である必要があります。詳細については、次の場所を参照してください(上記の回答にもリンクされています): http:
//home.nerbonne.org/A-vs-An/
Chad Kirbyによる代替実装へのリンクもあります:
https ://github.com/uplake/Articles
このライブラリは便利で使いやすいと思いました:https ://www.npmjs.com/package/indefinite 。
ドキュメントの例:
var a = require('indefinite');
console.log(a('apple')); // "an apple"
console.log(a('banana')); // "a banana"
console.log(a('UFO')); // 'a UFO'
console.log(a('hour')); // 'an hour'
console.log(a('ukelele')); // 'a ukelele'
console.log(a('banana', { capitalize: true })); // 'A banana'
console.log(a('UGLY SWEATER', { caseInsensitve: true })); // 'an UGLY SWEATER'
console.log(a('2')); // 'a 2'
console.log(a('8')); // 'an 8'