【发布时间】:2016-04-05 03:01:14
【问题描述】:
您可以在此处查看我希望如何过滤单词:
string = 'Take all first words for each letter... this is a test';
first_letters = {};
words = string.match(/\w+/g);
words.forEach(function(x){
var first = x[0].toLowerCase();
first_letters[first] = (first_letters[first] || x);
});
result = [];
for (var x in first_letters) {
result.push(first_letters[x]);
}
O.innerHTML = result;
<pre id=O>
我正在尝试仅使用正则表达式来获取上面显示的数组result,我开始尝试首先获取首字母:
result = words.match(/\b(?!\1)(\w)/gi);
但是(?!\1) 并没有像我想象的那样过滤字母。你可以看到here。
欢迎任何帮助。谢谢
【问题讨论】:
-
您好!你想要一个这样的数组 = [T,a,f,w,f,e,t,i,a,t] ?
-
也许使用 \b\w 获取所有首字母,然后使用 JavaScript 来完成剩下的工作?
-
@I'm_ADR。不,在您的数组
a,f,t中有重复项,我不想要重复项。 -
@Laurel。实际上,我的代码有效,但我试图仅使用正则表达式来获得相同的结果,但我遇到了麻烦;)
-
@WashingtonGuedes 为什么?你知道正则表达式不是万能的吗?
标签: javascript regex