javascript - 具有动态长度的正则表达式

标签 javascript regex

我有一个包含 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/

相关文章:

正则表达式仅捕获 1 个空格,除非被特定模式包围

regex - 获取文本正文中的最后一个词

javascript - 选择第二个日期。推特 Bootstrap

javascript 宾果游戏 table 问题

javascript - mongoDB node.js findAndModify 麻烦

java - 替换 json 文件中值之间的文本

javascript - 正则表达式匹配所有不在里面的 `,`\[\]

Python 正则表达式跳过可选组

javascript - 使用ajax从数据库Mvc中的表中删除行

javascript - 选项卡中的重启功能如何?