我需要 - 自动 - 为文本字符串生成标签。在这种情况下,我将使用这个字符串:
var text = 'This text talks about loyalty in the Royal Family with Príncipe Charles';
我当前的实现,为 6+ 个字符长的单词生成标签,它工作正常。
words = (text).replace(/[^a-zA-Z\s]/g,function(str){return '';});
words = words.match(/\w{6,}/g);
console.log(words);
这将返回:
["loyalty","Family","Prince","Charles"]
问题是有时,标签应该是一组特定的单词。我需要的结果是:
["loyalty","Royal Family","Príncipe Charles"]
这意味着,替换/匹配代码应该测试:
- 长度为 6 个字符(或更多)的单词;和/或
- 如果一组单词以大写字母开头,则这些单词应该在同一个数组元素中连接在一起。如果某些单词的长度少于 6 个字符,则无关紧要 - 但其中至少一个必须是 6+,例如:“Stop at The UK Guardián in London”应该返回 ["The UK Guardián", "伦敦”]
我显然在第二个要求中遇到了麻烦。有任何想法吗?谢谢!