Javascript库确定无限期文章

时间:2013-03-12 16:18:10

标签: javascript regex string

是否存在用于确定名词的不定冠词(“a”vs“an”)的javascript库?

我可以从一个简单的正则表达式开始:

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

但这不会处理如下情况:“user”应该返回false(你不会说“ 用户点击按钮”)。

3 个答案:

答案 0 :(得分:9)

Eamon Nerbonne的以下Javascript库应该是您正在寻找的:
http://home.nerbonne.org/A-vs-An/AvsAn.js

这实际上是在SO上创建的类似问题的答案:
https://stackoverflow.com/a/1288473/505154

此处使用的方法是下载Wikipedia,过滤它,并创建前缀数据库以确定/ a,这应该比大多数基于规则的系统更准确。您可以在以下位置找到更多信息(也在上面的答案中链接):
http://home.nerbonne.org/A-vs-An/

Chad Kirby还有一个替代实施的链接:
https://github.com/uplake/Articles

答案 1 :(得分:2)

这是我刚才写的一篇非常简单的文章:

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

我希望它有所帮助!

答案 2 :(得分: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'