JavaScript字符串方法参考总结

JavaScript字符串方法参考总结
 转换字符串 你可以转换一个数字,布尔值,或一个字符串的对象: 1 var myNumber = 24; // 24 2 var myString = myNumber.toString(); // "24" var myNumber = 24; // 24 var myString = String(myNumber); // "24" 将字符串分割成多个子字符串 为了区分一个字符串转换为一个子字符串数组,你可以使用的split()方法: 1 var myString = "coming,apart,at,the,commas"; 2 var substringArray = myString.split(","); // ["coming", "apart", "at", "the", "commas"] 3 var arrayLimited = myString.split(",", 3); // ["coming", "apart", "at"] 最后一行的第二个参数限制了数组参数所指定的项目的数量。 获取一个字符串的长度 要找出多少个字符长的字符串的length属性: 1 var myString = "You're quite a character."; 2 var stringLength = myString.length; // 25 在字符串中找到一个子串 这样做的方法有两种。 使用indexOf(): 1 var stringOne = "Johnny Waldo Harrison Waldo"; 2 var wheresWaldo = stringOne.indexOf("Waldo"); // 7 indexOf()方法从字符串的开头开始搜索的子串(通过)第一个参数,并返回第一次出现子字符串的开始位置。 使用lastIndexOf() : 1 var stringOne = "Johnny Waldo Harrison Waldo"; 2 var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22 lastIndexOf()方法是完全一样的,只不过它返回传递的子字符串中最后一次出现的起始位置。 在这两种方法中,如果没有找到子字符串,则返回值-1,并允许一个可选的第二个参数表示您要开始搜索的字符在字符串中的位置 替换掉一个子串 要更换一个新的字符串的字符串的一部分或全部,你可以使用replace(): 1 var slugger = "Josh Hamilton"; 2 var betterSlugger = slugger.replace("h Hamilton", "e Bautista"); 3 console.log(betterSlugger); // "Jose Bautista" 第一个参数是你要替换的子字符串,第二个参数是新的子串。这只会替换匹配的子字符串的第一个实例。 要更换匹配的子字符串的所有实例,使用正则表达式的全局标志: 1 var myString = "She sells automotive shells on the automotive shore"; 2 var newString = myString.replace(/automotive/g, "sea"); 3 console.log(newString); // "She sells sea shells on the sea shore" 第二个参数可以包括特殊的替换模式,或可以是一个函数。 在给定的位置,找到相应的字符 要查找的字符是在指定的位置,你可以使用charAt()方法: var myString = "Birds of a Feather"; var whatsAtSeven = myString.charAt(7); // "f" 往往是在JavaScript的情况下,引用该字符串中的第一个位置为“0”,而不是“1”。 或者,您也可以使用charCodeAt() ,它给你,而不是字符本身的字符代码: 1 var myString = "Birds of a Feather"; 2 var whatsAtSeven = myString.charCodeAt(7); // "102" 3 var whatsAtEleven = myString.charCodeAt(11); // "70" 请注意,大写字母“F”的位(11)的字符代码与小写字母“f”的位(7)从字符码不同。 连接多个字符串 在大多数情况下,当您连接字符串时,你会使用加法运算符(+)。但你也可以选择使用CONCAT()方法: 1 var stringOne = "Knibb High football "; 2 var stringTwo = stringOne.concat("rules."); // "Knibb High football rules" 您还可以通过将多个字符串,将被一个个的追加起来(在它们出现的顺序): 1 var stringOne = "Knibb "; 2 var stringTwo = "High "; 3 var stringThree = "football "; 4 var stringFour = "rules."; 5 var finalString = stringOne.concat(stringTwo, stringThree, stringFour); 6 console.log(finalString); // "Knibb high football rules." 提取字符串(组成新字符串) 有三种不同的方法来创建一个新的字符串值: 使用slice()方法: 1 var stringOne = "abcdefghijklmnopqrstuvwxyz"; 2 var stringTwo = stringOne.slice(5, 10); // "fghij" 使用substring()方法: var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring(5, 10); // "fghij" 对于这两个slice()和substring()方法的第一个参数是你想要的开始的子串,第二个参数(这是可选的)后的字符串中的字符结束的字串。因此,在上面的例子中,参数“5,10”,是指,字符5到9,以创建一个新的字符串。 使用SUBSTR() var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr(5, 10); // "fghijklmno" SUBSTR() ,第一个参数代表开始新的字符串的字符,第二个参数是可选的。但这个时候,第二个参数表示的字符的总数应包括的开始的字符“5”的位置。 一个字符串转换为大写或小写 有四种方法做大小写转换。有两个字符串转换为全部大写: 1 var stringOne = "Speak up, I can't hear you."; 2 var stringTwo = stringOne.toLocaleUpperCase(); // "SPEAK UP, I CAN'T HEAR YOU" 3 var stringThree = stringOne.toUpperCase(); // "SPEAK UP, I CAN'T HEAR YOU" 将字符串转换为小写: 1 var stringOne = "YOU DON'T HAVE TO YELL"; 2 var stringTwo = stringOne.toLocaleLowerCase(); // "you don't have to yell" 3 var stringThree = stringOne.toLowerCase(); // "you don't have to yell" 模式匹配 在一个字符串匹配的模式,可以使用两种方法,其基本的工作方式相同。 一个字符串match()方法被调用,并通过正则表达式: 1 var myString = "How much wood could a wood chuck chuck"; 2 var myPattern = /.ood/; 3 var myResult = myString.match(myPattern); // ["wood"] 4 var patternLocation = myResult.index; // 9 5 var originalString = myResult.input // "How much wood could a wood chuck chuck" exec()方法被调用的一个正则表达式对象,并通过字符串: var myString = "How much wood could a wood chuck chuck"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "How much wood could a wood chuck chuck" 对于这两种方法,只在第一个匹配发生被返回。如果没有找到匹配,将返回空值。 也可以使用search()方法,它接受一个正则表达式作为唯一的参数,并返回模式第一次出现的位置: 1 var myString = "Assume"; 2 var patternLocation = myString.search(/ume/); // 3 如果没有找到匹配,则该方法返回“-1”。 比较两个字符串的排序顺序 您可以比较两个字符串,看看哪一个字母先靠前使用localeCompare,,有三个可能的返回值: 1 var myString = "chicken"; 2 var myStringTwo = "egg"; 3 var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (except Chrome, which returns -2) 4 whichCameFirst = myString.localeCompare("chicken"); // 0 5 whichCameFirst = myString.localeCompare("apple"); // 1 (Chrome returns 2) stringObject.localeCompare(target)//公式 如上图所示,如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。 由于浏览器可以返回任何负数或正数之前和之后的结果最好使用 if ( result < 0 ) ,而不是if ( result === -1 ),后者将无法在Chrome浏览器中运行。 

Read more

基于FPGA的北斗导航自适应抗干扰算法的设计与实现(任务书+开题报告+文献综述+代码+仿真+实物+毕业论文)

基于FPGA的北斗导航自适应抗干扰算法的设计与实现(任务书+开题报告+文献综述+代码+仿真+实物+毕业论文)

摘   要 如今,随着卫星导航技术的飞速发展,位置信息服务已经融入到我们的日常生活中,导航目前被称为继移动互联网后第三大产业。卫星导航在维护国家的安全中也发挥着不可替代的作用。为了使导航系统不受干扰的影响,本文以北斗导航系统为平台,研究基于阵列天线的自适应抗干扰算法。 首先,文章就自适应抗干扰算法的原理和方法进行了系统介绍,并在MATLAB中建立阵列模型,对基于功率倒置算法的空域抗干扰算法和空时联合抗干扰算法进行性能仿真。然后根据系统的指标,确定了在FPGA中实现抗干扰算法的方案,包括数字下变频、权值计算、数据加权、数字上变频等模块。根据权值计算模块实现方式的不同,本文提供了两种抗干扰算法在FPGA中实现的方案:一种是基于FPGA嵌入式软核NIOS II的抗干扰实现,将权值计算的过程放在NIOS II软核中,用C语言进行实现;另一种是基于逻辑语言的抗干扰算法的实现,即用硬件描述语言Verilog HDL进行权值的计算。权值计算涉及到浮点数运算和Hermite矩阵求逆,本文给出了各模块的设计方法和仿真结果,并与MATLAB仿真结果进行对比。最后给出了两种实现方案的实测结果,表明两种实

FPGA 工程师到底有哪些方向?每个岗位都在干什么?一篇给你讲清楚

FPGA 工程师到底有哪些方向?每个岗位都在干什么?一篇给你讲清楚

很多人说“学 FPGA 就是写 Verilog”,但真正进了行业才发现—— FPGA 工程师并不是一个岗位,而是一整个岗位族群。 不同公司、不同项目,对 FPGA 工程师的要求差异非常大。 如果方向选错,可能学了半年发现岗位根本不对口。 这篇文章就系统地给你拆一拆: 👉 FPGA 工程师到底有哪些岗位? 👉 每个岗位具体干什么? 👉 需要掌握哪些能力? 👉 适合什么样的人? 一、FPGA 工程师整体岗位划分(先给结论) 从企业招聘角度来看,FPGA 岗位大致可以分为 6 类: 岗位方向关键词偏向FPGA 逻辑设计工程师Verilog / 时序 / 接口核心开发FPGA 算法 / 加速工程师图像 / AI / DSP算法落地FPGA 底层驱动工程师DDR / PCIe / SerDes硬件接口FPGA 系统应用工程师Linux + FPGA系统集成FPGA 验证 / 测试仿真 / 验证质量保障FPGA 技术支持 / FA客户 / 项目支持应用型

OpenClaw-多飞书机器人与多Agent团队实战复盘

OpenClaw-多飞书机器人与多Agent团队实战复盘

OpenClaw 多飞书机器人与多 Agent 团队实战复盘 这篇文章完整记录一次从单机安装到多机器人协作落地的真实过程: 包括 Windows 安装报错、Gateway 连通、模型切换、Feishu 配对、多 Agent 路由、身份错位修复,以及最终形成“产品-开发-测试-评审-文档-运维”团队。 一、目标与结果 这次实践的目标很明确: 1. 在 Windows 上稳定跑通 OpenClaw 2. 接入飞书机器人 3. 做到一个机器人对应一个 Agent 角色 4. 支持多模型并行(OpenAI + Ollama) 5. 最终形成可执行的多 Agent 团队 最终落地状态(已验证): * 渠道:Feishu 多账号在线 * 路由:按 accountId

宇树 G1 机器人开发入门:有线 & 无线连接完整指南

宇树 G1 机器人开发入门:有线 & 无线连接完整指南

适用读者:机器人二次开发者、科研人员 开发环境:Ubuntu 20.04(推荐) 机器人型号:Unitree G1 EDU+ 前言 宇树 G1 是一款面向科研与商业应用的高性能人形机器人,支持丰富的二次开发接口。在正式进行算法调试与功能开发之前,首要任务是建立稳定的开发连接。本文将详细介绍两种主流连接方式:有线(网线直连) 与 无线(WiFi + SSH),并附上完整的配置流程,帮助开发者快速上手。 一、有线连接(推荐新手优先使用) 有线连接通过网线直接将开发电脑与 G1 机器人相连,具有延迟低、稳定性高、不依赖外部网络的优势,是新手入门和底层调试的首选方式。 1.1 前置条件 所需物品说明开发电脑推荐安装 Ubuntu 20.04,或在 Windows 上使用虚拟机宇树 G1 机器人确保已开机且处于正常状态网线(