您的位置:

Vue截取字符串

一、Vue截取字符串方法

/**
* @param {string} str - 原始字符串
* @param {Number} len - 截取长度
* @returns {string} - 截取后的字符串
*/
function truncate(str, len) {
  if (str.length <= len) {
    return str;
  } else {
    return str.slice(0, len) + '...';
  }
}

在Vue中截取字符串需要用到javascript原生的截取方法,在Vue组件中可以声明一个方法,该方法可以在模板中通过{{ }}调用。自定义方法需要在methods中声明,并在模板中调用。

二、Vue截取字符串最后一个.后的字符

/**
* @param {string} str - 原始字符串
* @returns {string} - 截取后的字符串
*/
function truncateAfterDot(str) {
  const lastIndex = str.lastIndexOf('.');
  if (lastIndex === -1) {
    return str;
  } else {
    return str.slice(lastIndex + 1);
  }
}

这段代码实现了截取字符串最后一个.后的字符。lastIndexOf方法可以获取字符串中最后一个.的位置,然后使用slice方法将该位置后面的字符串截取出来。

三、Vue截取字符串后几位

/**
* @param {string} str - 原始字符串
* @param {Number} len - 截取长度
* @returns {string} - 截取后的字符串
*/
function truncateLast(str, len) {
  if (str.length <= len) {
    return str;
  } else {
    return str.slice(-len);
  }
}

这段代码实现了截取字符串后几位。slice方法中传入负数表示从字符串的末尾开始截取。

四、Vue字符串截取字节

/**
* @param {string} str - 原始字符串
* @param {Number} len - 截取长度
* @returns {string} - 截取后的字符串
*/
function truncateByByte(str, len) {
  let byteLen = 0;
  let result = '';
  for (let i = 0; i < str.length; i++) {
    if (byteLen >= len) {
      break;
    } else {
      const charCode = str.charCodeAt(i);
      if (charCode <= 128) {
        byteLen += 1;
      } else {
        byteLen += 2;
      }
      result += str.charAt(i);
    }
  }
  return result;
}

这段代码实现了根据字节数截取字符串。因为中文字符在utf-8编码中占用2个字节,英文字符占用1个字节,所以需要通过charCodeAt方法获取字符的编码值并根据情况判断。

五、Vue截取字符串后两位

/**
* @param {string} str - 原始字符串
* @returns {string} - 截取后的字符串
*/
function truncateLastTwo(str) {
  if (str.length <= 2) {
    return str;
  } else {
    return str.slice(-2);
  }
}

这段代码实现了截取字符串最后两位。跟“三、Vue截取字符串后几位”的方法类似,只需要通过负数索引获取后面的字符即可。

六、Vue截取字符串长度并换行

/**
* @param {string} str - 原始字符串
* @param {Number} len - 截取长度
* @returns {Array} - 截取后的字符串数组
*/
function truncateByLine(str, len) {
  let result = [];
  let count = 0;
  let line = '';
  for (let i = 0; i < str.length; i++) {
    const charCode = str.charCodeAt(i);
    count += (charCode <= 128) ? 1 : 2;
    if (count > len) {
      result.push(line);
      line = '';
      count = (charCode <= 128) ? 1 : 2;
    }
    line += str.charAt(i);
  }
  result.push(line);
  return result;
}

这段代码实现了根据长度截取字符串并换行。跟“四、Vue字符串截取字节”的方法类似,只是将结果分成了多行,需要使用一个数组存储结果。

七、Vue截取字符串最后一位

/**
* @param {string} str - 原始字符串
* @returns {string} - 截取后的字符串
*/
function truncateLastOne(str) {
  return str.charAt(str.length - 1);
}

这段代码实现了截取字符串最后一位,只需要使用charAt方法获取最后一个字符即可。

八、Vue截取字符串中的一段

/**
* @param {string} str - 原始字符串
* @param {Number} start - 开始位置
* @param {Number} end - 结束位置
* @returns {string} - 截取后的字符串
*/
function truncateForRange(str, start, end) {
  if (end === undefined) {
    return str.slice(start);
  } else {
    return str.slice(start, end);
  }
}

这段代码实现了截取字符串中的一段,可以指定开始位置和结束位置。如果仅指定开始位置,则默认截取开始位置到字符串末尾。

九、Vue截取字符串最后逗号

/**
* @param {string} str - 原始字符串
* @returns {string} - 截取后的字符串
*/
function truncateAfterComma(str) {
  const lastIndex = str.lastIndexOf(',');
  if (lastIndex === -1) {
    return str;
  } else {
    return str.slice(0, lastIndex);
  }
}

这段代码实现了截取字符串最后一个逗号之前的内容。同样是使用lastIndexOf方法获取逗号的位置,并使用slice方法将其之前的内容截取出来。

十、Vue截取字符串第一个字符

/**
* @param {string} str - 原始字符串
* @returns {string} - 截取后的字符串
*/
function truncateFirst(str) {
  return str.charAt(0);
}

这段代码实现了截取字符串的第一个字符,只需要使用charAt方法获取第一个字符即可。