微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决获取两个字符之间的多个子字符串javascript

我以this post作为参考,他们提出了这种解决方案:

当前

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"]

当我应用建议的解决方案时,它只会得到最后一个词“提取

解决方法

这是一种实现方法,从字符串的开头到结尾运行循环,并使用indexOfsubstring获得所需的结果

const str = 'MyLongString has :multiple; words that i :need; to :extract;';

function extractWords(str) {
    const words = [];
    for (let i = 0; i < str.length; i++) {
        if (str.charAt(i) === ':') {
            const stopIndex = str.indexOf(';',i);
            if (stopIndex !== -1)
                words.push(str.substring(i + 1,stopIndex));
        }
    }
    return words;
}

console.log(extractWords(str));

,

链接建议实际上是使用字符串函数而不是常规模式;借助/:\w+;/g标志,像/g这样的简单模式为我们提供了所有想要的单词。

我们可以使用lookarounds除去前缀和后缀,但是,这些前缀可能并不能在所有JavaScript环境中都可以使用(但是实际上,由于所有主流浏览器都支持{{1 }}运算符的最新版本,并且永远支持前瞻(?<=..)

(?=..)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。