Javascript将标记从字符串提取到数组中
我有一个类似这样的字符串:Javascript将标记从字符串提取到数组中,javascript,regex,Javascript,Regex,我有一个类似这样的字符串:动物园有一只名为{{123}的熊猫,它的颜色是{{234} 我有一个表示每一个令牌的数组,如: [{label:'Ralph',id:'123'},{label:'White and Black',id:'234'}] 我想遍历字符串并用实际标签替换{{token},但我还需要跟踪要替换的字符位置。拉尔夫将成为26号人物。更棘手的情况是:在我用Ralph替换{{123}}后,颜色的文本位置将不同,因为Ralph是5个字符,标记是7个字符 有没有关于解决这个问题的最快方法
动物园有一只名为{{123}的熊猫,它的颜色是{{234}
我有一个表示每一个令牌的数组,如:
[{label:'Ralph',id:'123'},{label:'White and Black',id:'234'}]
我想遍历字符串并用实际标签替换{{token}
,但我还需要跟踪要替换的字符位置。拉尔夫将成为26号人物。更棘手的情况是:在我用Ralph
替换{{123}}
后,颜色的文本位置将不同,因为Ralph是5个字符,标记是7个字符
有没有关于解决这个问题的最快方法的想法?这可能不像你想象的那么难:
var str=“动物园有一只名为{{123}的熊猫,它的颜色是{{234}”;
var数组=[{label:'Ralph',id:'123'},{label:'White and Black',id:'234'}];
对于(var i=0;i 警报(str)代码>如果希望跟踪可用于分割每个令牌的令牌位置,则不必关心索引
var str = "The zoo has a panda named {{123}} that is colored {{234}}";
str.split(/\{\{(.+?)\}\}/g);
//["The zoo has a panda named ", "123", " that is colored ", "234", ""]
使用示例首先尝试解决您的问题。从那以后,试着优化它。什么是正则表达式来获取所有匹配项和索引?我想那是我丢失的部分。@amcdnl为什么是正则表达式indexOf()
很棒为什么需要索引?那么,在更换代币之前,或者在更换代币之后,您是否需要这些代币,或者……?@hackettoya,我完全想得太多了!indexOf是完美的。有时,与其他人一起集思广益会有所帮助。OP还需要替换项的索引,尽管不清楚原因或以何种形式。@PaulRoub:我猜他需要的是子字符串的索引,就像他不应该首先使用的方法一样。注释不用于扩展讨论;这段对话已经结束。@bluefeet:实际上,这里有一些有用的评论,与答案()相关。。。。我同意下半场没有增加任何价值。(谢谢你回复)所有的评论都在聊天室里,在这里升起汽车旗有点失控了。由于讨论仍在进行,我提出了动议。