是否可以在javascript中从字符串中提取多个段

时间:2017-03-23 17:38:06

标签: javascript string

例子:我试图返回" abcdijklqrstyz"来自字符串" abcdefghijklmnopqrstuvwxyz" 我尝试过str.splice,但这只允许我提取顺序字符。

1 个答案:

答案 0 :(得分:0)

您可能正在寻找正则表达式(正则表达式)。以下是如何在示例中获取所请求的示例。

var match = 'abcdefghijklmnopqrstuvwxyz'.match(/^(.{4})(?:.{4})(.{4})(?:.{4})(.{4})(?:.{4})(.+)$/);
match.shift(); // This removes the passed in string from the results, leaving the matches
console.log(match.join(''));

表达式可以分解为以下内容:^在字符串[或行]的开头启动匹配条件。 (.{4})做了两件事。括号使得匹配的内容最终在其自己的"捕获组"中。 .表示"匹配除换行符之外的任何字符(非常)"。 {4}表示总共匹配以下序列4次,不多也不少。字符串的其余部分只是一个排列。您发现的唯一其他差异是(?:,这意味着它是非捕获组,并且不会返回内容。这可能已被省略,但对于某些人来说,它在阅读时提供了更多的清晰度。最后,$在最后意味着"结束字符串[或行]"的最后一个匹配。

请参阅实际操作中的示例并在此处使用它:https://regex101.com/r/X54DKC/1。还有关于构建正则表达式的很好的文档。这是一个很棒的教程网站:https://regexone.com/