【前端】JavaScript 方法速查大全-函数、正则、格式化、转换、进制、 XSS 转义(四)

🔥 前言

在现代前端开发中,JavaScript 是不可或缺的语言。无论是处理数据、操作 DOM,还是进行复杂的逻辑运算,掌握 JavaScript 的各种方法都是每位开发者的必修课。本文将为您提供一个全面、系统的 JavaScript 方法参考,涵盖数组操作、对象处理、正则表达式、数据格式转换等众多方面,助您在开发中游刃有余!💪

JavaScript 方法速查

📚 JavaScript 方法速查

1. 数学函数的实用示例

JavaScript 提供了丰富的数学函数,以下是一些常用的示例:

console.log(parseInt(5.12)); // 5
console.log(Math.floor(5.12)); // 5
console.log(Math.ceil(5.12)); // 6
console.log(Math.round(5.499)); // 5
console.log(Math.round(5.501)); // 6
console.log(Math.abs(-5)); // 5
console.log(Math.max(5, 6)); // 6
console.log(Math.min(5, 6)); // 5
console.log(Math.random()); // 随机数 (0-1)

2. 常用正则表达式速查

正则表达式是处理字符串的强大工具,以下是一些常见的正则表达式示例:

消除字符串首尾空格
let reg = /^\s+|\s+$/g;
let str = ' #id div.class '; 
console.log(str.replace(reg, '')); // "#id div.class"
替换手机号码
var reg = /1[24578]\d{9}/;
var str = '姓名:朱昆鹏 手机:15932638907';
console.log(str.replace(reg, '***')); // "姓名:朱昆鹏 手机:***"
替换敏感字
let str = '中国中国人民解放军中华人民共和国';
let r = str.replace(/中国|军/g, input => '*'.repeat(input.length));
console.log(r); // "****人民解放*中华人民共和国"
千位分隔符
let reg = /(\d)(?=(?:\d{3})+$)/g;
let numStr = '100002003232322';
let formatted = numStr.replace(reg, '$1,');
console.log(formatted); // "100,002,003,232,322"
验证手机号码
let reg = /^1((3[\d])|(4[5,6,9])|(5[0-3,5-9])|(6[5-7])|(7[0-8])|(8[1-3,5-8])|(9[1,8,9]))\d{8}$/;
console.log(reg.test('15932539095')); // true
console.log(reg.test('234554568997')); // false

3. 变量交换

在 JavaScript 中,变量交换可以通过解构赋值轻松实现:

let a = 1;
let b = 2;
[a, b] = [b, a];
console.log(a, b); // 2, 1

4. 格式化对象为 JSON 代码

使用 JSON.stringify 可以将对象格式化为 JSON 字符串:

const formatted = JSON.stringify({name: 'Jhon', age: 18, address: 'sz'}, null, 4);
console.log(formatted);
/*
{"name": "Jhon","age": 18,"address": "sz"
}
*/

5. 随机生成六位数字验证码

const code = Math.floor(Math.random() * 1000000).toString().padStart(6, "0");
console.log(code); // 例如 '042377'

6. RGB 颜色转 16 进制颜色

const RGBToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');
console.log(RGBToHex(255, 165, 1)); // 'ffa501'

7. 生成随机整数

function randomNum(min, max) {switch (arguments.length) {case 1:return Math.floor(Math.random() * min + 1);case 2:return Math.floor(Math.random() * (max - min + 1) + min);default:return 0;}
}console.log(randomNum(1, 10)); // 随机 [1,10] 的整数

8. 去除空格

function trim(str, type = 1) {if (![1, 2, 3, 4].includes(type)) return;switch (type) {case 1:return str.replace(/\s/g, "");case 2:return str.replace(/(^\s)|(\s*$)/g, "");case 3:return str.replace(/(^\s)/g, "");case 4:return str.replace(/(\s$)/g, "");default:return str;}
}console.log(trim('  Hello World  ', 2)); // "Hello World"

9. 大小写转换

function turnCase(str, type) {switch (type) {case 1:return str.toUpperCase();case 2:return str.toLowerCase();case 3:return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();default:return str;}
}console.log(turnCase('hello World', 1)); // "HELLO WORLD"

10. 随机生成 16 进制颜色

function hexColor() {let str = '#';let arr = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];for (let i = 0; i < 6; i++) {let index = Math.floor(Math.random() * 16);str += arr[index];}return str;
}console.log(hexColor()); // 例如 '#FFA501'

11. 统计一段文字中指定文字出现次数

function keywordsCount(text, keywords) {return text.split(keywords).length - 1;
}console.log(keywordsCount('hello world, hello JavaScript', 'hello')); // 2

12. 轮询等待函数

function pollingWaiting(callBack, resCallBack, time = 100, lastTime = 1000) {let startTime = Date.now();let t = null;const fn = function () {t = setTimeout(() => {if (!callBack()) {if (Date.now() - startTime > lastTime) {clearTimeout(t);} else {fn();}} else {resCallBack();}}, time);};fn();
}// 示例
let a = 1;
setTimeout(() => {a = 2;
}, 500);pollingWaiting(() => a === 2,() => { console.log('触发了', a); },100,800
);
// 输出:
// "触发了 2"

13. 大数值转换为万,亿

function numConversion(num, point = 2) {let numStr = Math.floor(num).toString();let numLen = numStr.length;if (numLen < 6) {return numStr;} else if (numLen >= 6 && numLen <= 8) {let decimal = numStr.substring(numLen - 4, numLen - 4 + point);let res = parseInt(num / 10000) + '.' + decimal + '万';return res;} else if (numLen > 8) {let decimal = numStr.substring(numLen - 8, numLen - 8 + point);let res = parseInt(num / 100000000) + '.' + decimal + '亿';return res;}
}console.log(numConversion(123456789)); // "1.23亿"

14. 常见的 XSS 转义场景

转义 HTML 特殊字符
function HtmlEncode(str) {var hex = ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'];var preescape = str;var escaped = "";for(var i = 0; i < preescape.length; i++){var p = preescape.charAt(i);escaped += escapeCharx(p);}return escaped;function escapeCharx(original){var thechar = original.charCodeAt(0);switch(thechar) {case 10: return "<br/>"; // newlinecase 32: return "&nbsp;"; // spacecase 34: return "&quot;"; // "case 38: return "&amp;"; // &case 39: return "&#x27;"; // 'case 60: return "&lt;"; // <case 62: return "&gt;"; // >default:if(thechar > 127) {return "&#x" + thechar.toString(16) + ";";}else{return original;}}}
}let str = '朱昆鹏<div>2707509@.qq.com</div>朱昆鹏';
console.log(HtmlEncode(str)); 
// 输出:朱昆鹏&lt;div&gt;2707509@.qq.com&lt;/div&gt;朱昆鹏

🌲 更多文章

【VScode】中文版ChatGPT编程工具-CodeMoss!教程+示例+快捷键
【VScode】VSCode中的智能编程利器,全面揭秘ChatMoss & ChatGPT中文版

💡 结尾

以上内容涵盖了常用的 JavaScript 方法与技巧,希望对大家在日常开发中有所帮助。掌握这些方法不仅能提高开发效率,还能帮助您更好地解决实际问题。💻

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/4526.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C语言void *特殊的指针类型:使用

一&#xff1a; 1通用指针类型 void * 表示无类型指针&#xff0c;它可以指向任何类型的数据对象。与其他具体类型的指针&#xff08;如 int *、char * 等&#xff09;不同&#xff0c;void * 指针不指向特定类型的数据&#xff0c;因此在使用时需要进行适当的类型转换。 2…

浅谈风力发电并网系统的控制和优化策略

0引言 风能作为一种可再生资源&#xff0c;以其低污染和巨大储量的优势备受青睐。近年来&#xff0c;随着绿色发展战略的持续推进&#xff0c;我国在风力发电技术领域取得了显著成就。风力发电的总装机容量和并网规模持续增长&#xff0c;为农业生产和居民生活提供了丰富的电力…

对想从事大模型领域的技术开发者的建议或看法

“ 学习技术之前&#xff0c;我们首先要搞明白的是我们想要什么&#xff0c;想做什么&#xff0c;而不是稀里糊涂的去学习技术**”** 大模型技术作为目前比较火的技术之一&#xff0c;有很多技术人员想从事大模型方面的开发&#xff0c;但又不知道该怎么入手&#xff0c;应该学…

433、315通信、ev1527、2262编码

目录 ASK介绍EV1527编码芯片介绍模块介绍无线发射芯片无线接收芯片解码程序发射电路原理图 ASK介绍 ASK是幅移键控&#xff0c;通过调幅将数据发送出去&#xff0c;所以发送与接收都是多位二进制数。 ASK如何区分0和1&#xff1f; 0&#xff1a;发送 433.92Mhz 无线波形&…

面向生成式 AI 的向量数据库:架构,性能与未来趋势

导读 向量数据库是高效处理和准确检索高维数据的基石&#xff0c;对于生成式 AI 技术而言至关重要。本文将分享向量数据库的架构设计和实现中的关键点。 主要分为五个方面&#xff1a; 向量数据库背景介绍 Milvus 整体架构设计 性能的关键-索引 面向 AI 持续进化 01 向量…

vulhub之zabbix

zabbix是一款服务器监控软件,其由server、agent、web等模块组成,其中web模块由PHP编写,用来显示数据库中的结果。能够监控各种网络参数以及服务器健康性和完整性。 zabbix的详细介绍: https://blog.csdn.net/wt334502157/article/details/117994107 zabbix latest.php S…

介绍一下如何生成随机数(c基础)

适合对象 c语言初学者 总结语言用色&#xff0c;个人强调用红色&#xff0c;注意为易错点&#xff0c;若有问题请告诉我谢谢。(建议通过目录观看)。一定要自己动手打代码。 rand函数 是生成随机数的函数&#xff0c;但实则是伪随机数。(即是同一个值) 格式 #include<st…

java案例6-1库存管理系统

【案例介绍】 1.任务描述 像商城和超市这样的地方&#xff0c;都需要有自己的库房&#xff0c;并且库房商品的库存变化有专人记录&#xff0c;这样才能保证商城和超市正常运转。 本例要求编写一个程序&#xff0c;模拟库存管理系统。该系统主要包括系统首页、商品入库、商品显示…

【嵌入式Linux】Linux设备树详解

设备树是是Linux中一种用于描述硬件配置的数据结构&#xff0c;它在系统启动时提供给内核&#xff0c;以便内核能够识别和配置硬件资源。设备树在嵌入式Linux系统中尤其重要&#xff0c;因为这些系统通常不具备标准的硬件配置&#xff0c;需要根据实际的硬件配置来动态配置内核…

逻辑卷建立

逻辑卷 lvm逻辑卷即为&#xff1a;logical volume manager逻辑管理卷&#xff0c;是linux系统下管理硬盘分区的一种机制&#xff0c;lvm适合于管理大型存储文件&#xff0c;用户可以动态的对磁盘进行扩容 作用 lvm&#xff1a;linux系统的一个重要的存储技术 不同的硬盘的不…

【持续更新】【NLP项目】【自然语言处理】智能聊天机器人——“有问必答”【Chatbot】第2章、《模式一:问候模式》

智能聊天机器人——“有问必答” 【注】该项目已开源&#xff0c;开源地址为&#xff1a;链接&#xff0c;代码更新可能不及时。 第2章、《模式一&#xff1a;问候模式》 主窗体的布局如下图所示&#xff1a; 共九种功能模式&#xff0c;最下方为关闭窗口按钮。 点击问候模…

时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多步时间序列预测

时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测 目录 时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多…

attributeerror: ‘FreeTypeFont‘ object has no attribute ‘getsize‘问题

我在训练yolov9的时候报错&#xff1a;attributeerror: ‘FreeTypeFont‘ object has no attribute ‘getsize‘。看过很多博客分析&#xff0c;都是说FreeTypeFont 字体的原因&#xff0c;其实真实问题出现yolo版本安装的Pillow库更新后&#xff0c;getsize&#xff08;&#…

三维天地:数字技术推动汽车产业实验室管理变革创新

近日,2024汽车技术与装备发展论坛在苏州成功召开。论坛以“共筑汽车产业新质生产力”为主题,聚焦新技术、新装备、新生态展开深入研讨,探索装备制造与汽车产业的融合发展路径。北京三维天地科技股份有限公司受邀参会。 在同期举办的检测认证高质量发展论坛上,三维天地咨询总监宫…

产品人必读书籍丨这本书告诉了我在AI时代如何成为一名顶级PM!!

《人工智能产品经理》——AI时代的PM修炼手册&#xff0c;这是一本不太工具的工具书。 很多人不了解产品经理需要具备的能力和素质。那么产品经理人工智能呢&#xff1f;这就更懵了&#xff0c;全是新词汇组成的新职业&#xff0c;到底怎样才算合格的人工智能产品经理&#x…

免费文件夹加密工具

1、去掉了miniExcel引用包&#xff0c;删除掉了excel配置文件 2、增加了密码登录功能&#xff0c;可以修改密码 3、使用sqlite3数据库来保存文件夹列表和用户密码&#xff0c;用户密码采用md5加盐 4、使用了 antdui来美化下界面 5、未解锁文件平不能被移除 其他还是保持老样…

第四届计算机图形学、人工智能与数据处理国际学术会议

在线投稿&#xff1a;学术会议-学术交流征稿-学术会议在线-艾思科蓝 第四届计算机图形学、人工智能与数据处理国际学术会议&#xff08;ICCAID 2024&#xff09;将于 2024年12月13日-15日在中国南昌举行。本次会议主要围绕“计算机图形学、人工智能与数据处理”的最新研究…

辐射发射测试新境界:深入解析TS-RadiMation套件多种操作方法(一)

TS-RadiMation套件作为辐射发射测试的得力助手&#xff0c;支持多种测试方法。 多频段手动模式电波暗室固定高度测试GTEM小室测试手动模式&#xff08;单频段&#xff09; 本文将详细介绍如何操作手动模式及手动模式&#xff08;单频段&#xff09;这两种模式&#xff0c;助您…

基于matlab的基于Tent混沌映射改进的麻雀搜索算法SSA优化BP神经网络预测

基于Tent混沌映射改进的麻雀搜索算法SSA优化BP神经网络预测 1 普通BP网络 代码如有需要&#xff0c;联系 596520206 %构建网络netnewff(inputn,outputn,hiddennum);% 网络参数net.trainParam.epochs100; % 训练次数net.trainParam.lr0.01; % 学习速…

[前端][基础]JavaScript

1&#xff0c;JavaScript简介 JavaScript 是一门跨平台、面向对象的脚本语言&#xff0c;而Java语言也是跨平台的、面向对象的语言&#xff0c;只不过Java是编译语言&#xff0c;是需要编译成字节码文件才能运行的&#xff1b;JavaScript是脚本语言&#xff0c;不需要编译&…