如何解决获取两个字符之间的多个子字符串javascript
当前
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"]
解决方法
这是一种实现方法,从字符串的开头到结尾运行循环,并使用indexOf
和substring
获得所需的结果
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 举报,一经查实,本站将立刻删除。