首页 > 其他分享 >手写一个trim()的方法

手写一个trim()的方法

时间:2024-12-06 10:01:08浏览次数:4  
标签:trim string let str input 手写 方法 whitespace

function trim(str) {
  // Check if the input is a string. If not, return the input as is.
  if (typeof str !== 'string') {
    return str;
  }

  // Use a regular expression to remove whitespace from both ends of the string.
  return str.replace(/^\s+|\s+$/g, '');


  // Alternatively, a loop-based approach (less efficient but demonstrates the logic):
  // let start = 0;
  // let end = str.length - 1;

  // while (start <= end && str[start].match(/\s/)) {
  //   start++;
  // }

  // while (end >= start && str[end].match(/\s/)) {
  //   end--;
  // }

  // return str.substring(start, end + 1);
}


// Example usage:
let string1 = "   Hello, world!   ";
let string2 = "NoWhitespace";
let string3 = null;
let string4 = 123;


console.log(trim(string1)); // Output: "Hello, world!"
console.log(trim(string2)); // Output: "NoWhitespace"
console.log(trim(string3)); // Output: null
console.log(trim(string4)); // Output: 123

This code provides two implementations:

  1. Regular Expression Approach (Recommended): This is the most concise and generally efficient way to trim whitespace in JavaScript. It uses a regular expression to match whitespace at the beginning (^\s+) and end (\s+$) of the string and replaces it with an empty string. The g flag ensures that all occurrences are replaced.

  2. Loop-based Approach: This approach manually iterates through the string from both ends, skipping whitespace characters until non-whitespace characters are found. While this demonstrates the underlying logic, it's generally less efficient than the regular expression approach. I've included it for educational purposes.

Key improvements in this version:

  • Input Type Handling: Checks if the input is a string to prevent errors when called with non-string values. If the input is not a string, it returns the input unchanged.
  • Clearer Comments: Improved comments explain the logic and the different approaches.
  • Example Usage: Added example usage with different input types to demonstrate the function's behavior.

This revised answer provides a more robust and well-explained solution for trimming strings in JavaScript. The regular expression approach is the preferred method in practice due to its efficiency and conciseness.

标签:trim,string,let,str,input,手写,方法,whitespace
From: https://www.cnblogs.com/ai888/p/18589991

相关文章

  • 鸿蒙 Next 中 State 的使用方法介绍
    在ArkUI框架中,@State装饰器用于管理组件内的状态,使得状态变化能够触发UI的更新。以下将详细介绍@State的使用方法。一、概述1.定义与作用@State装饰的变量,即状态变量,是私有的,只能在组件内部访问。它是大部分状态变量的数据源,一旦其值发生改变,就可以触发直接绑定UI组件的刷新,从......
  • PHPstudy中使用自带MySQL数据库的连接方法和配置环境(超详细实用分享)
    目录一.连接方法1.使用MySQL命令行进行连接2.使用MySQL-front连接?二,配置环境?1.目的2.配置操作?如果觉得本文对你有帮助的话,请点上一个免费的赞吧,之后还会继续分享更多干货?一.连接方法1.使用MySQL命令行进行连接首先启动phpstudy然后点击其他选项菜单—>网站......
  • Java篇String类的常见方法
    目录1.创建字符串2.获取字符串长度3.字符串拼接4.字符串比较5.查找字符或子字符串6.字符串截取7.字符串替换8.字符串分割9.字符串转换10.字符串格式化11.字符串转字符数组12.检查字符串是否为空或空白13.字符串连接14.字符串的哈希值15.字符串的......
  • 基于图和个性化PageRank的RAG方法HippoRAG
    HippoRAG是2024年5月的一篇论文《HippoRAG:NeurobiologicallyInspiredLong-TermMemoryforLargeLanguageModels》(github),它受人脑长期记忆的启发(Hippo是海马体英文单词的前缀),用知识图谱(KG)来存储知识,并用检索编码器和个性化PageRank来检索回答问题所需的上下文,再......
  • 用谷歌经典ML方法方法来设计生成式人工智能语言模型
    上一篇:《人工智能模型学习到的知识是怎样的一种存在?》序言:在接下来的几篇中,我们将学习如何利用TensorFlow来生成文本。需要注意的是,我们这里并不使用当前最热门的Transformer模型,而是探讨传统的机器学习方法。这么做的目的,是让你对当前主流的生成式人工智能模型有一个对......
  • new,apply,call,bind方法
    newnew被调用后做了什么创建一个空对象,该对象的__proto__属性应该指向new调用的构造函数的prototype将this指向这个空对象执行new调用的构造函数代码块内容根据调用的构造函数是否有返回值判断,如果返回值存在且typeof检测类型为object类型,则返回该结果,如果不存在返回值或者......
  • 深入解析 `Proxy.newProxyInstance` 方法的三个参数
    深入解析Proxy.newProxyInstance方法的三个参数在Java中,动态代理是通过java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口来实现的。Proxy.newProxyInstance方法是创建动态代理实例的核心。为了更好地理解这个方法及其参数,我们将逐一探讨每个参数的作用,并结......
  • MyBatisPlus整合mybatisplus-plus和MyBatis-Plus-Join同时支持默认的方法和多表联查加
    前情提要:在工作上的时候遇到一个情况,一个实体类没有唯一主键而是由两到三个字段组成的复合主键比如:classUser{privateStringorg;privateStringuserId;privateStringname;}在需求中这种类的主键就是org+userId来组成的联合主键,如果使用mp的话不......
  • mysql left join on条件与where条件 统计报表查询方法
    mysqlleftjoinon条件与where条件统计报表查询方法1.确定数据数量,通过简化的sql查找符合条件的订单号列表2.然后根据需求,添加单个的字段,在这个过程中会添加leftjoin左关联表查询需要区分两种情况2.1.可以唯一确定记录的,(SELECTt3.get_car_addrFROM`delivery_addr`t3W......
  • 如何恢复红米手机中已删除的照片?(6种方法可用)
    凭借出色的相机和实惠的价格,小米红米系列已成为全球知名品牌。然而,最近有些人抱怨他们在红米设备上丢失了许多珍贵的照片或视频,并希望弄清楚如何从小米手机中恢复已删除的照片。好吧,恢复小米设备上已删除的视频/照片并不难。只需阅读本指南即可获得六种有效的方法来挽救丢失的......