JavaScript 数组字符串转换Json格式
JavaScript 数组字符串转换Json格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | //滔Roy 2023.04.13 function parseStringToArray(str) { // 尝试将字符串解析为 JSON 格式 try { const arr = JSON.parse(str); // 如果解析成功,则直接返回解析结果 if (Array.isArray(arr)) { return arr; } } catch (e) {} // 如果解析失败,则按逗号 `,` 分割字符串,并转换为数字或字符串数组 const arr = str .replace(/[^\d.,\u4e00-\u9fa5]/g, '' ) // 去除非数字、非逗号、非句点、非中文字符的字符 .split( ',' ) .map(s => { const n = Number(s.trim()); // 尝试将字符串转换为数字 if (!isNaN(n)) { // 如果转换成功,则返回数字 return n; } else { // 如果转换失败,则返回字符串 return s.trim(); } }); return arr; } |
以上代码的部分说明:
- Unicode 编码范围
\u4e00-\u9fa5
来匹配中文字符。这样,即使控制台不支持中文字符,也能够正常输出 Unicode 编码。 - 使用正则表达式
/[^\d.,]/g
将输入字符串中的非数字、非逗号、非句点的字符去除,然后再将处理后的字符串按逗号分割,并转换为数字数组。这样就能够处理包含中文字符的输入字符串,并且不会出现空白输出的问题。
支持转换的格式有(示例):
1 2 3 4 5 6 7 8 9 | // 转换为第一种格式,包含中文字符,不乱码 const inputString1 = "32周,33周,34周,35周,36周,37周,38周" ; //或者'32周', '33周', '34周', '35周', '36周', '37周', '38周' const outputArray1 = parseStringToArray(inputString1); console.log(outputArray1); // ['32周', '33周', '34周', '35周', '36周', '37周', '38周'] // 转换为第二种格式,单纯的数字、字母等 const inputString2 = "120, 132, 101, 134, 90, 230, 210" ; const outputArray2 = parseStringToArray(inputString2); console.log(outputArray2); // [120, 132, 101, 134, 90, 230, 210] |
创建时间:2023.04.13 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!
分类:
JavaScript 函数
标签:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
2015-04-13 Delphi Treeview用法介绍
2015-04-13 TTreeView、TTreeNodes和TTreeNode