我有一个看起来像这样的字符串:
var string = 'foo:bar:1234:something:4321';
我希望在bar:
之后将该部分返回到下一个:
。在这种情况下,我想要“1234”。尺寸可以变化。
这是我的开始,但我不确定如何指定结尾。
var newString = string.slice('bar:'.indexOf(), <HOW TO SPECIFY THE END?>);
修改
字符串也可以包含更多的值和冒号,所以这些也是可能的:
var string = 'fu:bu:foo:bar:1234:something:4321';
var string = 'bar:1234:something:4321';
答案 0 :(得分:2)
我使用正则表达式:
// catch `bar:` at the beginning of the string, or
// :bar: elsewhere
var matches = string.match(/(?:^|:)bar:([^:]+):/);
var newString = matches[1];
var string = 'foo:bar:1234:something:4321';
var matches = string.match(/(?:^|:)bar:([^:]+):/);
var newString = matches[1];
console.log(newString);
string = 'bar:1234:something:4321';
console.log(newString);
答案 1 :(得分:0)
function getBarValue(str) {
var splitString = str.split('bar:'); // make this `:bar:` if foobar: is an issue
if (splitString.length < 2) {
return null; // "bar:" does not exist in string
}
return splitString[1].substring(0, splitString[1].indexOf(':'));
}
var barVal = getBarValue('foo:bar:1234:something:4321');
console.log(barVal);