sourcecode

Javascript는 PHP 폭발()에 상당합니다.

copyscript 2022. 9. 25. 00:15
반응형

Javascript는 PHP 폭발()에 상당합니다.

다음과 같은 문자열이 있습니다.

00000020C90037:TEMP: 데이터

다음 문자열이 필요합니다.

TEMP: 데이터.

PHP를 사용하면 다음과 같이 할 수 있습니다.

$str = '0000000020C90037:TEMP:data';
$arr = explode(':', $str);
$var = $arr[1].':'.$arr[2];

효과적인 방법explodeJavaScript 문자열은 PHP에서 동작하는 방식입니까?

이것은 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의 plaste() 함수를 정확하게 모방해야 합니다.

'a'.explode('.', 2); // ['a']
'a.b'.explode('.', 2); // ['a', 'b']
'a.b.c'.explode('.', 2); // ['a', 'b.c']

헤어질 필요 없어요.및 을 사용할 수 있습니다.

str = str.substr(str.indexOf(':')+1);

하지만 그에 상당하는 것은explode이 됩니다.

분할하고 싶은가 보군

이것을 시험해 보세요.

arr = str.split (":");

create's object:

// 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(':')

php를 좋아하신다면 php를 보세요.JS - JavaScript 폭발

또는 일반 JavaScript 기능: '

var vInputString = "0000000020C90037:TEMP:data";
var vArray = vInputString.split(":");
var vRes = vArray[1] + ":" + vArray[2]; `

console.log(('0000000020C90037:TEMP:data').split(":").slice(1).join(':'))

출력:TEMP:data

  • .syslog()는 문자열을 여러 부분으로 분해합니다.
  • .temply()는 어레이를 문자열로 재구성합니다.
  • 첫 번째 항목이 없는 어레이를 원하는 경우 .timeout(1)을 사용합니다.

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"

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;
}

슬라이스, 스플릿, 조인 코드 한 줄만 쓰면 돼

      let arrys = (str.split(":").slice(1)).join(":");

이 투고가 꽤 오래되었다는 것은 알지만, 몇 년 동안 도움이 된 기능을 추가하는 편이 낫겠다고 생각했습니다.위와 같이 스플릿을 사용하여 폭발 기능을 리메이크하면 어떨까요?여기 있습니다.

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(~);

분해된 변수는 어레이를 반환하고 어레이 요소에 액세스할 수 있습니다.참으로 분해된 [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
}

출처: http://locutus.io/php/strings/explode/

언급URL : https://stackoverflow.com/questions/4514323/javascript-equivalent-to-php-explode

반응형