Javascript 获取两个字符之间的多个子字符串

Javascript 获取两个字符之间的多个子字符串,javascript,regex,string,substring,lastindexof,Javascript,Regex,String,Substring,Lastindexof,我以他们建议的解决方案为参考: 当前 Str = 'MyLongString:StringIWant;' 期望输出 newStr = 'StringIWant' 解决方案 var mySubString = str.substring( str.lastIndexOf(":") + 1, str.lastIndexOf(";") ); 但是如果我有多发性呢?就我而言,我有一段很长的文字,比如: str = 'MyLongString

我以他们建议的解决方案为参考:

当前

Str = 'MyLongString:StringIWant;'
期望输出

newStr = 'StringIWant'
解决方案

var mySubString = str.substring(
    str.lastIndexOf(":") + 1, 
    str.lastIndexOf(";")
);
但是如果我有多发性呢?就我而言,我有一段很长的文字,比如:

str = 'MyLongString has :multiple; words that i :need; to :extract;'
新的期望输出:

strarray = ["multiple","need","extract"]

当我应用建议的解决方案时,它只是获取最后一个单词extract

这是一种方法,从字符串的开头到结尾运行一个循环,并使用indexOf和substring来获得所需的结果

const str='MyLongString有:多个;我需要的话;至:提取;'; 函数提取字sstr{ 常量字=[]; 对于let i=0;iconsole.logextractWordsstr 链接的建议实际上是使用字符串函数而不是规则模式;一个简单的模式,如/:\w+/由于/g标志,g给了我们所有想要的单词


我们可以使用pre-fix和postfix来摆脱,但是,这些可能不适用于所有JavaScript环境,但实际上,现在问题不大了,因为所有主流浏览器都支持lookback?在这个示例中,它起到了作用,如果我想在[and]之间查找子字符串,这会起作用吗?让result2=str.match/?@ChristopherMartinez是,但是,您可能需要使用反斜杠转义某些正则表达式特殊字符,如括号,例如?/?不确定什么“不起作用”,但正则表达式没有问题,请参阅: