16

名詞の不定冠詞(「a」と「an」)を判別するために存在するjavascriptライブラリはありますか?

次のような単純な正規表現から始めることができます。

var pattern = /^([aeiou])/i;
pattern.test("umbrella");

ただし、これはfalseを返す必要がある「user」のようなケースを処理しません(「ユーザーがボタンをクリックしたとは言いません)。

4

3 に答える 3

12

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

于 2013-03-12T16:28:51.380 に答える
3

これは私が少し前に書いた本当に単純なものです:

https://github.com/rigoneri/indefinite-article.js

お役に立てば幸いです。

于 2013-10-28T00:22:13.267 に答える
0

このライブラリは便利で使いやすいと思いました: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'
于 2019-02-10T18:37:16.983 に答える