当前位置:首页 > 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实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…