Javascript 如何让单词在字符串中以#开头

Javascript 如何让单词在字符串中以#开头,javascript,jquery,regex,string,Javascript,Jquery,Regex,String,我试图读取浏览器中的hashtag,并检查是否存在两个特定的hashs。 以下是一个例子: #world#player3#track1 所以我想检查上面的字符串是否包含hashtagsplayer或track,如果是,那么它应该返回那些hashtags 例如:player3和track1 我试图用以下代码实现它,但它不起作用: var str = "#player1#track2" if (str.length > 0 && str.indexOf("player") &

我试图读取浏览器中的hashtag,并检查是否存在两个特定的hashs。 以下是一个例子:

#world#player3#track1
所以我想检查上面的字符串是否包含hashtags
player
track
,如果是,那么它应该返回那些hashtags

例如:
player3
track1

我试图用以下代码实现它,但它不起作用:

var str = "#player1#track2"
if (str.length > 0 && str.indexOf("player") >= 0) {
  var player = str.substr(str.indexOf("player"), str.indexOf("#"));
  var track = str.substr(str.indexOf("track"), str.indexOf("#"));
  console.log(player + "" + track);
};

有什么办法可以做到这一点吗

使用正则表达式匹配hashtag前缀后跟任何数字

var str=“#player1#track2”
var player=str.match(/#player\d+/);
玩家=玩家?播放器[0]:“”;
var track=str.match(/#track\d+/);
轨道=轨道?曲目[0]:“”;
console.log(播放器+曲目)如果您有几个“player”或“track”标签怎么办?在这种情况下,我想你可能想要这样的东西:

var strings = str.split('#');
for ( var i = 0; i < strings.length; i++ ) {
    if ( strings[i].indexOf("player") >= 0 || strings[i].indexOf("track") >= 0 )
        console.log(strings[i] + " ");
  }
var strings=str.split('#');
for(var i=0;i=0 | | strings[i].indexOf(“track”)>=0)
log(字符串[i]+“”);
}

请阅读。关键短语:“搜索、研究”和“解释……任何阻碍你自己解决问题的困难”。此外,请澄清这一部分:“因此,我想检查上述字符串是否与hashtags player或track联系,如果是,它应该返回这些字符串,以便我能知道它们的编号。”@MikeMcCaughan,EDITED。我没有首先添加代码的原因是它与我想要实现的目标不太接近。为什么不直接使用
str.indexOf(“#player”)
?@Barmar它只会返回“#player”开始的数字。在这种情况下,我需要知道这个字符串在哪里完成。该值可以是“#player1”或
#player3627
。我在寻找一种方法,一旦找到“#player”,它就会给出它的字符串,直到下一个“#”。这样我就可以拥有整串的#player了。希望它有意义。