前端 js 经典:字符串超全方法总结

简介: 前端 js 经典:字符串超全方法总结

1. anchor 创建 a 标签字符串

anchor(name),name:a 标签的 name 属性

返回一个 a 标签字符串

let str = "yqcoder";
 
// 不传值
str.anchor(); // '<a name="undefined">yqcoder</a>'
 
// 创建 name 属性为 web 的 a 标签字符串
str.anchor("web"); // '<a name="web">yqcoder</a>'

2. at 根据下标查找字符

at(index?),index:字符串下标,默认等于 0

返回下标所在字符串,如果没找到返回 undefined

let str = "yqcoder";
 
// 默认返回第 1 个字符
str.at(); // 'y'
 
// 查找最后 1 个字符
str.at(-1); // 'r'
 
// 没找到
str.at(100); // undefined

3. big 创建大号标签字符串

big(),返回大号标签字符串

let str = "yqcoder";
 
// 创建 str 大号标签字符串
str.big(); // '<big>yqcoder</big>'

4. blink 创建闪动标签字符串

blink(),返回闪动标签字符串

let str = "yqcoder";
 
// 创建 str 闪动标签字符串
str.big(); // '<blink>yqcoder</blink>'

5. bold 创建粗体标签字符串

bold(),返回粗体标签字符串

let str = "yqcoder";
 
// 创建 str 粗体标签字符串
str.bold(); // '<b>yqcoder</b>'

6. charAt 查找下标对应字符

charAt(index?),index:字符下标,默认为 0

查找到返回对应字符,如果没找到返回空 ""。

let str = "yqcoder";
 
// 默认返回第 1 位字符
str.charAt(); // y
 
// 返回最后 1 位字符
str.charAt(str.length - 1); // r
 
// 找不到
str.charAt(100); // ""

7. charCodeAt 查找下标对应字符的 Unicode 编码。

charCodeAt(index?),index:字符下标,默认为 0

查找到返回对应字符,如果没找到返回空 NAN。

let str = "yqcoder";
 
// 默认返回第 1 位字符
str.charCodeAt(); // 121
 
// 返回最后 1 位字符
str.charCodeAt(str.length - 1); // 114
 
// 找不到
str.charCodeAt(100); // NAN

8. codePointAt 查找下标对应字符的 Unicode 编码。

codePointAt(index?),index:字符下标,默认为 0

查找到返回对应字符,如果没找到返回空 undefined。

let str = "yqcoder";
 
// 默认返回第 1 位字符
str.codePointAt(); // 121
 
// 返回最后 1 位字符
str.codePointAt(str.length - 1); // 114
 
// 找不到
str.codePointAt(100); // undefined

9. concat 字符串拼接

concat(arg),arg 参数可以是字符串,数组,多层数组,多个数组。

返回拼接好的字符串

let str = "yqcoder";
 
// 拼接普通字符串
str.concat(" is coder"); // 'yqcoder is coder'
 
// 拼接字符串数组
str.concat([" is coder", " is a man"]); // 'yqcoder is coder, is a man'
 
// 拼接多层字符串数组
str.concat([" is coder", [" is a man", [" is a big"]]]); // 'yqcoder is coder, is a man, is a big'
 
// 拼接多个数组字符串
str.concat([" is coder"], [" is a man"]); // 'yqcoder is coder is a man'

10. endsWith 判断字符串是否由特定字符结尾

endsWith(str, length?),str:特定字符,length:被用来判断的字符长度,从左到右的字符长度。

判断时区分大小写,符合返回 true,不符合返回 false

let str = "yqcoder";
 
// 判断是否coder结尾
str.endsWith("coder"); // true
 
// 判断是否Coder结尾
str.endsWith("Coder"); // false
 
// 判断前 6 个字符是否以 coder 结尾
str.endsWith("coder", 6); // false

11. fixed 创建<tt>标签字符串

fixed(),返回<tt>标签字符串

let str = "yqcoder";
 
// 创建 str <tt>标签字符串
str.fixed(); // '<tt>yqcoder</tt>'

12. fontcolor 创建 color 属性的 font 标签字符串

fontcolor(color),color:颜色

返回 color 属性的 font 标签字符串

let str = "yqcoder";
 
// 创建color为red的<font>标签字符串
str.fontcolor("red"); // '<font color="red">yqcoder</font>'

13. fontsize 创建 size 属性的 font 标签字符串

fontsize(size),size:字体大小

返回 size 属性的 font 标签字符串

let str = "yqcoder";
 
// 创建size为red的<font>标签字符串
str.fontsize(12); // '<font size="12">yqcoder</font>'

14. includes 判断是否包含特定字符串

includes(str, start?),str:特定字符串,start:开始下标

包含返回 true,不包含返回 false

let str = "yqcoder";
 
// 判断是否包含 'yq' 字符
str.includes("yq"); // true
 
// 从下标 1 开始判断是否包含 'yq'
str.includes("yq", 1); // false

16. indexOf 查找字符串下标

indexOf(str, start?),str:查找字符,start:开始下标,默认从 0 开始

查找到返回下标,如果没找到返回 -1。

let str = "yqcoder-yqcoder";
 
// 从下标 0 开始,查找 y 所在位置。
str.indexOf("y"); // 0
 
// 从下标 2 开始,查找 y 所在位置。
str.indexOf("y", 2); // 8

17. isWellFormed 判断字符串是否包含单独代理项

isWellFormed(),返回 boolean 值。

let str = "yqcoder";
let str1 = "yqcoder\uD800";
 
// 判断str是否包含单独代理项
str.isWellFormed(); // true
 
// 判断str1是否包含单独代理项
str1.isWellFormed(); // false

18. italics 创建斜体标签字符串

italics(),返回斜体标签字符串

let str = "yqcoder";
 
// 创建斜体字符串
str.italics(); // '<i>yqcoder</i>'

19. lastIndexOf 从后往前查找字符串下标

lastIndexOf(str, start?),str:查找字符,start:开始下标,默认从 0 开始

查找到返回下标,如果没找到返回 -1。

let str = "yqcoder-yqcoder";
 
// 从最后 1 开始,查找 y 所在位置。
str.indexOf("y"); // 8
 
// 从下标 0 开始,查找 y 所在位置。
str.indexOf("y", 0); // 0

20. link 创建 a 标签字符串

link(url),url:a 标签的 href 属性

返回一个 a 标签字符串

let str = "yqcoder";
 
// 不传值
str.link(); // '<a href="undefined">yqcoder</a>'
 
// 创建 href 属性为 www.baidu.com 的 a 标签字符串
str.link("www.baidu.com"); // '<a href="www.baidu.com">yqcoder</a>'

21. localeCompare 比较两个字符串大小

localeCompare(str),str:比较字符串

当大于比较字符串时返回 1,等于返回 0,小于返回 -1

let str = "a";
let str1 = "b";
 
// 比较 str,str1 大小
str.localeCompare(str1); // -1
 
// 自身比较
str.localeCompare(str); // 0
 
// 比较 str1,str 大小
str.localeCompare(str); // -1

22. match 根据传入正则匹配字符串

match(reg),reg:传入正则

字符串满足正则要求返回一个数组。没找到返回 null

let str = "yqcoder";
 
// 匹配正则 /coder/ 的字符串
str.match(/coder/); // ['coder', index: 2, input: 'yqcoder_yqcoder', groups: undefined]
 
// 匹配正则 /coder/g 的字符串
str.match(/coder/g); // ['coder']
 
// 不匹配正则
str.match(/\d/g); // null

23. matchall 根据传入正则匹配字符串

matchall(reg),reg:正则表达式,必须带 g

调用方法的字符串必须通过 ... 才可调用,满足条件返回分组迭代器,不满足返回 undefined

let str = "yqcoder-yqcoder";
 
// 匹配正则 /coder/g 的字符串
console.log(...str.matchAll(/coder/g)); // ['coder', index: 2, input: 'yqcoder-yqcoder', groups: undefined] ['coder', index: 10, input: 'yqcoder-yqcoder', groups: undefined]
 
// 不匹配正则
console.log(...str.matchAll(/\d/g)); // undefined

24. padEnd 尾部填充

padEnd(length, str?),length:填充长度,str:填充字符,默认为空

返回填充后的字符串,如果 length 小于原字符串长度,返回原字符串

let str = "yqcoder";
 
// 默认填充字符串长度到 10
str.padEnd(10); // 'yqcoder   '
 
// 填充 1 直到字符长度到 10
str.padEnd(10, 1); // 'yqcoder111'
 
// 填充 123 知道字符长度到 9
str.padEnd(9, 123); // 'yqcoder12'
 
// 填充 1 直到字符长度到 1
str.padEnd(1, 1); // 'yqcoder'

25. padStart 头部填充

padStart(length, str?),length:填充长度,str:填充字符,默认为空

返回填充后的字符串,如果 length 小于原字符串长度,返回原字符串

let str = "yqcoder";
 
// 默认填充字符串长度到 10
str.padStart(10); // '   yqcoder'
 
// 填充 1 直到字符长度到 10
str.padStart(10, 1); // '111yqcoder'
 
// 填充 123 知道字符长度到 9
str.padStart(9, 123); // '12yqcoder'
 
// 填充 1 直到字符长度到 1
str.padStart(1, 1); // 'yqcoder'

26. repeat 重复字符串

repeat(number), number:重复次数

返回重复后的字符串

let str = "yqcoder";
 
// 重复 1 次字符串
str.repeat(1); // 'yqcoder'
 
// 重复 2 次字符串
str.repeat(2); // 'yqcoderyqcoder'

27. replace 替换字符串

replace(oldStr, newStr),oldStr:替换前字符串,newStr:替换后字符串

返回替换后的字符串

let str = "yqcoder-yqcoder";
 
// 将 yq 替换成 dyb
str.replace("yq", "dyb"); // 'dybcoder-yqcoder'
 
// 将所有 yq 替换成 dyb
str.replace(/yq/g, "dyb"); // 'dybcoder-dybcoder'

28. replaceAll 替换所有满足条件字符串

replaceAll(oldStr, newStr),oldStr:替换前字符串,newStr:替换后字符串

返回替换后的字符串

let str = "yqcoder-yqcoder";
 
// 将 yq 替换成 dyb
str.replaceAll("yq", "dyb"); // 'dybcoder-dybcoder'

29. search 查找字符串是否存在

search(str),str:目标字符串

如果查到返回目标字符串下标,如果没找到返回 -1

let str = "yqcoder";
 
// 查找 'yq'
str.search("yq"); // 0
 
// 查找 'dyb'
str.search("dyb"); // -1

30. slice 字符串截取

slice(start, end?),start:开始下标,end:结束下标

左闭右开,如果存在返回截取字段,不存在返回 ""

let str = "yqcoder";
 
// 截取字符串前 2 位
str.slice(0, 2); // 'yq'
 
// 截取字符串最后 1 位
str.slice(-1); // 'r'
 
// 截取字符串第 11 位
str.slice(10, 11); // ''

31. small 创建 small 标签字符串

small(),返回一个 small 标签字符串

let str = "yqcoder";
 
// 创建 small 标签字符串
str.small(); // '<small>yqcoder</small>'

32. split 字符串分割成数组

split(str?, length?),str:分割符,length:分割后数组长度

返回分割后的数组。

let str = "yqcoder-yqcoder";
 
// 不传参,字符串直接转数组
str.split(); // ['yqcoder-yqcoder']
 
// 将字符串以 "-" 分割成数组
str.split("-"); // ['yqcoder', 'yqcoder']
 
// 将字符串以 "-" 分割成数组,只要数组第一项
str.split("-", 1); // ['yqcoder']

33. startsWith 判断字符串是否由特定字符开始

startsWith(str),str:特定字符

判断时区分大小写,符合返回 true,不符合返回 false

let str = "yqcoder";
 
// 判断是否 yq 开始
str.startsWith("yq"); // true
 
// 判断是否 Yq 开始
str.startsWith("Yq"); // false

34. strike 创建删除标签字符串

strike(),返回删除标签字符串

let str = "yqcoder";
 
// 创建删除标签字符串
str.strike(); // '<strike>yqcoder</strike>'

35. sub 创建下标标签字符串

sub(),返回下标标签字符串

let str = "yqcoder";
 
// 创建下标标签字符串
str.sub(); // '<sub>yqcoder</sub>

36. substr 字符串裁剪

substr(index, length?),index:开始下标,length:裁剪长度

返回裁剪后的字符串,包括 index 下标的字符。如果不传 length,默认裁剪从 index 到最后

let str = "yqcoder";
 
// 裁剪下标 2 开始的全部字符
str.substr(2); // 'coder'
 
// 裁剪前 2 位字符
str.substr(0, 2); // 'yq'

37. substring 字符串裁剪

substring(start, end?),start:开始下标,end:结束下标

返回裁剪后的字符串,包括 start 下标的字符。不包括 end 结束下标字符。如果不传 end,默认裁剪到最后

let str = "yqcoder";
 
// 裁剪下标 2 开始的全部字符
str.substring(2); // 'coder'
 
// 裁剪前 2 位字符
str.substring(0, 2); // 'yq'
 
// 裁剪第 2 位
str.substring(1, 2); // 'q'

38. sup 创建上标标签字符串

sup(),返回上标标签字符串

let str = "yqcoder";
 
// 创建上标标签字符串
str.sup(); // '<sup>yqcoder</sup>'

39. toLocaleLowerCase 字母转小写

toLocaleLowerCase(),将所有大写字母转小写

let str = "YqCoder";
 
// 字母转小写
str.toLocaleLowerCase(); // 'yqcoder'

40. toLocaleUpperCase 字母转大写

toLocaleUpperCase(),将所有小写字母转大写

let str = "YqCoder";
 
// 字母转大写
str.toLocaleUpperCase(); // 'YQCODER'

41. toLowerCase 字母转小写

toLowerCase(),将所有大写字母转小写

let str = "YqCoder";
 
// 字母转小写
str.toLowerCase(); // 'yqcoder'

42. toUpperCase 字母转大写

toUpperCase(),将所有小写字母转大写

let str = "YqCoder";
 
// 字母转大写
str.toUpperCase(); // 'YQCODER'

43. toString 转字符串

toString(),各个数据类型通过 toString()方法转字符串

let arr = [1, [2, 3, [4, 5, 6, [7, 8, 9]]]];
let obj = { name: "yqcoder" };
let bl = true;
let number = 123;
 
// 数组转字符串,会将数组内数据平铺用, 拼接成字符串
arr.toString(); // '1,2,3,4,5,6,7,8,9'
 
// 对象转字符串
obj.toString(); // '[object Object]'
 
// 布尔值转字符串
bl.toString(); // 'true'
 
// 数字转字符串
number.toString(); // '123'

44. toWellFormed 迭代字符串的码元

toWellFormed(),将任何单独的代理项替换为 Unicode 替换字符 U+FFFD �。

let str = "yqcoder";
let str1 = "yqcoder\uD800";
 
// 将 str 中的单独的代理项替换成 �
str.toWellFormed(); // 'yqcoder'
 
// 将 str1 中的单独的代理项替换成 �
str1.toWellFormed(); // 'yqcoder�'

45. trim 去字符串头和尾的空格

trim(),返回去除头尾空格后的字符串,无法去除中间的空格。

let str = "  yq coder  ";
 
// 将 str 去除头尾空格
str.trim(); // 'yq coder'

46. trimEnd、trimRight 去字符串尾部的空格

trimEnd()、trimRight() 返回去除尾部空格后的字符串。

let str = "  yq coder  ";
 
// 将 str 去除头尾空格
str.trimEnd(); // '  yq coder'
str.trimRight(); // '  yq coder'

47. trimStart、trimLeft 去字符串头部的空格

trimStart()、trimLeft() 返回去除头部空格后的字符串。

let str = "  yq coder  ";
 
// 将 str 去除头尾空格
str.trimStart(); // 'yq coder  '
str.trimLeft(); // 'yq coder  '


目录
相关文章
|
28天前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
26天前
|
监控 JavaScript Java
Node.js中内存泄漏的检测方法
检测内存泄漏需要综合运用多种方法,并结合实际的应用场景和代码特点进行分析。及时发现和解决内存泄漏问题,可以提高应用的稳定性和性能,避免潜在的风险和故障。同时,不断学习和掌握内存管理的知识,也是有效预防内存泄漏的重要途径。
121 52
|
25天前
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
|
27天前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
40 5
|
25天前
|
缓存 前端开发 JavaScript
JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式
本文深入解析了JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式(Hash路由和History路由)、优点及挑战,并通过实际案例分析,帮助开发者更好地理解和应用这一关键技术,提升用户体验。
63 1
|
28天前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
23 2
|
28天前
|
JavaScript 前端开发
js中的bind,call,apply方法的区别以及用法
JavaScript中,`bind`、`call`和`apply`均可改变函数的`this`指向并传递参数。其中,`bind`返回一个新函数,不立即执行;`call`和`apply`则立即执行,且`apply`的参数以数组形式传递。三者在改变`this`指向及传参上功能相似,但在执行时机和参数传递方式上有所区别。
26 1
|
2月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
177 2
|
2月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
48 0
|
2月前
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。