답변:
이것은 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'
split(delimiter,limit)
의 한계 매개 변수는의 한계 매개 변수와 동일하게 작동하지 않습니다 explode($delimiter,$string,$limit)
. 예 : explode('.','1.2.3.4',3) === array('1','2','3.4')
-Javascript 상태에서는 다음과 같은 결과가 나타납니다 '1.2.3.4'.split('.',3) === ['1', '2', '3']
. 누구나 PHP의 방법을 쉽게 복제하는 방법을 알고 있습니까?
분할하지 않아도됩니다. 당신은 사용할 수 있습니다 indexOf
및 substr
:
str = str.substr(str.indexOf(':')+1);
그러나 이에 상응하는 explode
것입니다 split
.
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']
create는 객체입니다.
// 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";
PHP를 좋아한다면 php.JS를 살펴보십시오 -JavaScript explode
또는 일반적인 JavaScript 기능에서 :`
var vInputString = "0000000020C90037:TEMP:data";
var vArray = vInputString.split(":");
var vRes = vArray[1] + ":" + vArray[2]; `
emptyArray = { 0: '' }
? :-/
explode('foo','bar'); // 'bar'
입니다. 이것이 내가 도착한 이유이며 제한을 위해 사용할 복사 및 붙여 넣기 스크립트는 완벽합니다. 나는 내 자신을 만들기 위해 부업 할 필요가 없습니다. 결국 바퀴를 재발 명하는 이유, 키스
console.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];
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
var str = "helloword~this~is~me";
var exploded = str.splice(~);
exploded 변수는 배열을 반환하고 배열의 요소에 액세스 할 수 있습니다. true exploded [nth] 여기서 nth는 얻고 자하는 값의 인덱스입니다.
이렇게 해봐
ans = str.split (":");
문자열의 두 부분을 사용할 수 있습니다.
ans [0] 및 ans [1]
자신의 함수를 정의하려면 다음을 시도하십시오.
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
}