我有这个字符串:
0000000020C90037:TEMP:data
我需要这个字符串:
TEMP:data.
使用PHP,我会这样做:
$str = '0000000020C90037:TEMP:data';
$arr = explode(':', $str);
$var = $arr[1].':'.$arr[2];
我怎么在JavaScript中有效地实现像PHP中explode
函数的功能?
我有这个字符串:
0000000020C90037:TEMP:data
我需要这个字符串:
TEMP:data.
使用PHP,我会这样做:
$str = '0000000020C90037:TEMP:data';
$arr = explode(':', $str);
$var = $arr[1].':'.$arr[2];
我怎么在JavaScript中有效地实现像PHP中explode
函数的功能?
这是直接从您的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'
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']
试试这个:
arr = str.split (":");
创建对象:
// 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";
使用String.split方法
"0000000020C90037:TEMP:data".split(':')
var vInputString = "0000000020C90037:TEMP:data";
var vArray = vInputString.split(":");
var vRes = vArray[1] + ":" + vArray[2]; `
explode('foo','bar'); // 'bar'
。这就是我来到这里的原因,对于我的目的来说,一个复制粘贴脚本是绝对完美的,我打算在其中使用限制。我不必陷入创建自己的轮子中。毕竟,为什么要重新发明轮子呢?K.I.S.S. - Andy Geeconsole.log(('0000000020C90037:TEMP:data').split(":").slice(1).join(':'))
输出结果: TEMP:data
并非要批评John Hartsock,只是以防止使用给定代码的任何人界定符数量不同,我正式建议使用以下代码替代...
var mystr = '0000000020C90037:TEMP:data';
var myarr = mystr.split(":");
var arrlen = myarr.length;
var myvar = myarr[arrlen-2] + ":" + myarr[arrlen-1];
split(delimiter,limit)
的limit
参数不能像explode($delimiter,$string,$limit)
的limit
参数一样工作。例如:explode('.','1.2.3.4',3) === array('1','2','3.4')
- 而在 JavaScript 中,你将得到:'1.2.3.4'.split('.',3) === ['1', '2', '3']
。有人知道如何轻松复制 PHP 的方法吗? (说明:本文是针对一段编程问题的翻译,涉及两种编程语言中对于字符串的处理函数的差异及如何解决该问题) - Nathan J.B.