当前位置:首页 > JavaScript

js 实现trim

2026-02-02 02:20:26JavaScript

实现 JavaScript 的 trim 功能

在 JavaScript 中,trim() 方法用于去除字符串两端的空白字符。如果需要手动实现类似功能,可以通过正则表达式或遍历字符串的方式完成。

使用正则表达式实现

正则表达式是最简洁的实现方式,通过匹配字符串开头和结尾的空白字符并替换为空字符串:

js 实现trim

function trim(str) {
  return str.replace(/^\s+|\s+$/g, '');
}
  • ^\s+ 匹配字符串开头的空白字符。
  • |\s+$ 匹配字符串结尾的空白字符。
  • g 标志表示全局匹配。

手动遍历字符串实现

如果不依赖正则表达式,可以通过遍历字符串找到非空白字符的起始和结束位置:

js 实现trim

function trim(str) {
  let start = 0;
  let end = str.length - 1;

  while (start <= end && str[start] === ' ') {
    start++;
  }

  while (end >= start && str[end] === ' ') {
    end--;
  }

  return str.slice(start, end + 1);
}
  • 从字符串开头遍历,找到第一个非空白字符的位置。
  • 从字符串末尾遍历,找到最后一个非空白字符的位置。
  • 使用 slice 截取有效部分。

兼容性扩展

如果需要兼容更多空白字符(如制表符、换行符等),可以调整正则表达式:

function trim(str) {
  return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
}
  • \s 匹配常规空白字符。
  • \uFEFF\xA0 分别处理 BOM 和非断空格。

性能优化

对于长字符串,正则表达式的性能通常优于手动遍历。但在极端情况下,可以结合两种方法优化:

function trim(str) {
  if (str.length > 1000) {
    let start = 0;
    let end = str.length - 1;
    while (start <= end && str[start] === ' ') start++;
    while (end >= start && str[end] === ' ') end--;
    return str.slice(start, end + 1);
  }
  return str.replace(/^\s+|\s+$/g, '');
}
  • 根据字符串长度选择实现方式。
  • 长字符串使用遍历,短字符串使用正则表达式。

标签: jstrim
分享给朋友:

相关文章

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…