我有一个看起来像这样的字符串:
0000000020C90037:TEMP:数据
我需要在第一次冒号之后抓住所有东西,这样我就有了TEMP:data。
我不经常使用Javascript,如果它是PHP我会这样做:
$str = '0000000020C90037:TEMP:data';
$arr = explode(":", $str);
$var = $arr[1].":".$arr[2];
答案 0 :(得分:581)
这是从您的PHP代码直接转换:
//Loading the variable
var mystr = '0000000020C90037:TEMP:data';
//Splitting it with : as the separator
var myarr = mystr.split(":");
//Then read the values from the array where 0 is the first
//Since we skipped the first element in the array, we start at 1
var myvar = myarr[1] + ":" + myarr[2];
// Show the resulting value
console.log(myvar);
// 'TEMP:data'
答案 1 :(得分:44)
答案 2 :(得分:29)
String.prototype.explode = function (separator, limit)
{
const array = this.split(separator);
if (limit !== undefined && array.length >= limit)
{
array.push(array.splice(limit - 1).join(separator));
}
return array;
};
应该完全模仿PHP的explode()函数。
'a'.explode('.', 2); // ['a']
'a.b'.explode('.', 2); // ['a', 'b']
'a.b.c'.explode('.', 2); // ['a', 'b.c']
答案 3 :(得分:27)
看起来你想要split
答案 4 :(得分:7)
试试这个:
arr = str.split (":");
答案 5 :(得分:5)
创建一个对象:
// 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";
答案 6 :(得分:4)
使用String.split
"0000000020C90037:TEMP:data".split(':')
答案 7 :(得分:4)
如果您喜欢php,请查看php.JS - JavaScript explode
或者在普通的JavaScript功能中: `
var vInputString = "0000000020C90037:TEMP:data";
var vArray = vInputString.split(":");
var vRes = vArray[1] + ":" + vArray[2]; `
答案 8 :(得分:3)
console.log(('0000000020C90037:TEMP:data').split(":").slice(1).join(':'))
输出:TEMP:data
答案 9 :(得分:2)
无意评论John Hartsock,以防使用给定代码的任何人的分隔符数量不同,我会正式建议使用此代码......
var mystr = '0000000020C90037:TEMP:data';
var myarr = mystr.split(":");
var arrlen = myarr.length;
var myvar = myarr[arrlen-2] + ":" + myarr[arrlen-1];
答案 10 :(得分:1)
var str = '0000000020C90037:TEMP:data'; // str = "0000000020C90037:TEMP:data"
str = str.replace(/^[^:]+:/, ""); // str = "TEMP:data"
答案 11 :(得分:0)
所以我知道这篇文章很老了,但我想我也可以添加一个多年来一直帮助我的功能。为什么不使用如上所述的拆分重制爆炸功能呢?那么这就是:
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
瓦纳看到它在行动?点击here。
答案 12 :(得分:0)
只是对 psycho 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;
}
答案 13 :(得分:0)
如果您想定义自己的功能,请尝试以下方法:
function explode (delimiter, string, limit) {
if (arguments.length < 2 ||
typeof delimiter === 'undefined' ||
typeof string === 'undefined') {
return null
}
if (delimiter === '' ||
delimiter === false ||
delimiter === null) {
return false
}
if (typeof delimiter === 'function' ||
typeof delimiter === 'object' ||
typeof string === 'function' ||
typeof string === 'object') {
return {
0: ''
}
}
if (delimiter === true) {
delimiter = '1'
}
// Here we go...
delimiter += ''
string += ''
var s = string.split(delimiter)
if (typeof limit === 'undefined') return s
// Support for limit
if (limit === 0) limit = 1
// Positive limit
if (limit > 0) {
if (limit >= s.length) {
return s
}
return s
.slice(0, limit - 1)
.concat([s.slice(limit - 1)
.join(delimiter)
])
}
// Negative limit
if (-limit >= s.length) {
return []
}
s.splice(s.length + limit)
return s
}
答案 14 :(得分:0)
var str = "helloword~this~is~me";
var exploded = str.splice(~);
爆炸变量将返回数组并且您可以访问数组的元素来访问它真实爆炸[nth]其中nth是您想要获得的值的索引
答案 15 :(得分:0)
尝试这样,
ans = str.split (":");
你可以使用字符串的两个部分,如
ans [0]和ans [1]
答案 16 :(得分:0)
我使用了切片,拆分和合并 您可以只编写一行代码
let arrys = (str.split(":").slice(1)).join(":");