我有一个包含 2 或 3 个单词的字符串:
'apple grape lemon'
'apple grape'
我需要从所有单词中获取第一个字符。 我的正则表达式:
/^(\w).*?\ (\w).*?\ ?(\w?).*?$/
对于所有字符串,此正则表达式仅获取 2 个单词的第一个字符。
如何解决?
最佳答案
您无法使用一个正则表达式来完成此操作(除非您使用的是 .NET)。但是您可以使用匹配单词的一个第一个字符的正则表达式,然后获取所有匹配项,并将它们连接在一起:
var firstLetters = '';
var match = str.match(/\b\w/g)
if (match)
firstLetters = match.join('');
当然,如果您只想单独获取字母,则不需要 join
,因为 match
只是一个包含所有这些字母的数组字母。
你不应该,\w
不仅是字母,而且也是数字和下划线。
关于javascript - 具有动态长度的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13334471/