我有一个看起来像这样的字符串:

0000000020C90037:TEMP:数据

我想获取第一个冒号之后的字符串,即:TEMP:数据

在php中,我知道可以使用explode函数来实现,代码如下:

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

但在js中该如何实现呢?

这里有几种方法:

第一:使用js的split方法,具体代码如下:

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
var myvar = myarr[0] + \":\" + myarr[1];

 

第二种方法:使用js中的indexOf和substr, 代码如下:

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

 

第三种方法:自定义函数,这个函数的功能和php explode功能一模一样:

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 === \' \' ||
    typeof string === \'function\' ||
    typeof string === \' \') {
    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
}
收藏 打印