我有这个字符串:
0000000020 c90037:临时数据
我需要这个字符串:
临时:数据。
用PHP我可以这样做:
$str = '0000000020C90037:TEMP:data';
$arr = explode(':', $str);
$var = $arr[1].':'.$arr[2];
我如何有效地爆炸一个字符串在JavaScript的方式,它在PHP工作?
我有这个字符串:
0000000020 c90037:临时数据
我需要这个字符串:
临时:数据。
用PHP我可以这样做:
$str = '0000000020C90037:TEMP:data';
$arr = explode(':', $str);
$var = $arr[1].':'.$arr[2];
我如何有效地爆炸一个字符串在JavaScript的方式,它在PHP工作?
当前回答
创建一个对象:
// create a data object to store the information below.
var data = new Object();
// this could be a suffix of a url string.
var string = "?id=5&first=John&last=Doe";
// this will now loop through the string and pull out key value pairs seperated
// by the & character as a combined string, in addition it passes up the ? mark
var pairs = string.substring(string.indexOf('?')+1).split('&');
for(var key in pairs)
{
var value = pairs[key].split("=");
data[value[0]] = value[1];
}
// creates this object
var data = {"id":"5", "first":"John", "last":"Doe"};
// you can then access the data like this
data.id = "5";
data.first = "John";
data.last = "Doe";
其他回答
看起来你想分开
只是对神经病brm的回答的一点补充(他的版本在IE中不能工作<=8)。 此代码是跨浏览器兼容的:
function explode (s, separator, limit)
{
var arr = s.split(separator);
if (limit) {
arr.push(arr.splice(limit-1, (arr.length-(limit-1))).join(separator));
}
return arr;
}
var str = '0000000020C90037:TEMP:data'; // str = "0000000020C90037:TEMP:data"
str = str.replace(/^[^:]+:/, ""); // str = "TEMP:data"
所以我知道这篇文章很老了,但我想我不妨添加一个多年来帮助我的功能。为什么不像上面提到的那样使用split重做爆炸函数呢?就是这样:
function explode(str,begin,end)
{
t=str.split(begin);
t=t[1].split(end);
return t[0];
}
如果您试图获取两个值之间的值,则此函数工作得很好。例如:
data='[value]insertdataherethatyouwanttoget[/value]';
如果您对从两个[值]“标记”之间获取信息感兴趣,可以使用如下所示的函数。
out=explode(data,'[value]','[/value]');
//Variable out would display the string: insertdataherethatyouwanttoget
但是,假设您没有像上面显示的例子那样方便的“标签”。不管。
out=explode(data,'insert','wanttoget');
//Now out would display the string: dataherethatyou
想看看实际情况吗?请点击这里。
console.log (0000000020 c90037:临时:数据).split(“:”).slice (1) . join (': '))
输出:临时数据
.split()将把字符串分解成多个部分 .join()将数组重新组装为字符串 当你想要数组没有第一项时,使用.slice(1)