在有人说它是this或this的副本之前。 JavaScript
没有look behind
,所以我一直在努力解决这个问题。如上所述here
look ahead
我真正想做的是这个。我有: -
hey:blah,{'some':'obj','another':[4,5,0]}
我想提取所有内容但不包括第一个:
。
所以我的输出是: -
blah,{'some':'obj','another':[4,5,0]}
到目前为止我的尝试: -
(:.+) //gives :blah,{'some':'obj','another':[4,5,0]}
- 请注意它有:
[^\w:].+ //gives ,{'some':'obj','another':[4,5,0]}
- 不是我预期的结果。 blah
遗失了。
我试图在纯正则表达式中尝试这样做并尝试避免循环或任何字符串操作。
到目前为止,我的尝试一直无济于事。
答案 0 :(得分:4)
如果您不希望选择任何内容,可以将其包装成以下内容:
(?=:(.*))
如果你想要直到以下冒号:
(?=:([^:]*))
由于未选择任何内容,[0]
将为空。访问[1]
:
/(?=:(.*))/.exec("hey:blah,{'some':'obj','another':[4,5,0]}")[1];
// Use [1] not [0] ^^
那说,有什么不妥之处:
var str = "hey:blah,{'some':'obj','another':[4,5,0]}";
str.substr(str.indexOf(':') + 1);
答案 1 :(得分:2)
答案 2 :(得分:2)
您可以使用string.replace
string.replace(/^[^:]*:/, "");