欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > WPS JS宏编程教程(从基础到进阶)-- 第八部分:字符串技术与WPS结合应用

WPS JS宏编程教程(从基础到进阶)-- 第八部分:字符串技术与WPS结合应用

2025/4/21 22:03:26 来源:https://blog.csdn.net/u014541881/article/details/147258662  浏览:    关键词:WPS JS宏编程教程(从基础到进阶)-- 第八部分:字符串技术与WPS结合应用

目录

  • 第8章 字符串技术与WPS结合应用
    • 8-1 字符串的3种引用方式
      • 场景:动态生成报表标题
        • 三种引用方式对比
        • 代码解析表
        • 模板字符串核心优势
    • 8-2 字符串处理之切片与搜索
      • 场景:提取身份证中的出生年份
        • 三大截取方法对比
        • 方法选择指南
        • 索引搜索实战
    • 8-3 字符串处理之修改与填充
      • 场景:规范商品编号
        • 关键方法应用
        • 代码流程解析
    • 8-4 正则表达式入门
      • 场景:从客户留言中提取手机号
        • 正则表达式两大创建方式
        • 代码解析表
        • 常见基础匹配规则
    • 8-5 支持正则的字符串函数
      • 场景:清洗杂乱的订单备注
        • 三步清洗法
        • 关键函数对比
        • 可视化清洗流程
    • 8-6 元字符:文本匹配的基石
      • 场景:从物流单中提取运单号
        • 核心元字符解析
        • 元字符对照表
        • 代码解析
    • 8-7 元字符应用:提取连续数字
      • 场景:清洗发票金额数据
        • 代码实现
        • 正则逻辑分解
        • 处理流程
    • 8-8 字符组与任选:灵活匹配逻辑
      • 场景:识别多种日期格式
        • 字符组与任选符结合
        • 符号对比表
        • 处理结果示例
    • 8-9 字符组应用:条件计数
      • 场景:统计考试达标人数
        • 正则实现逻辑
        • 正则解析表
        • 输入输出示例
    • 8-10 贪婪匹配:最长的代价
      • 场景:截取HTML标签内容
        • 贪婪与懒惰匹配对比
        • 符号对比表
    • 8-11 贪婪匹配应用:提取身份证日期
      • 场景:从身份证号提取格式化生日
        • 正则截取与格式化
        • 正则分组解析
    • 8-12 分组匹配:结构化提取
      • 场景:解析订单信息
        • 分组捕获与命名
        • 分组结果映射
    • 8-13 分组应用:合计字符串中的数字
      • 场景:计算订单描述中的总金额
        • 正则提取与计算
        • 正则逻辑分解
        • 处理流程
    • 8-14 分组引用:在替换中重用内容
      • 场景:格式化日期字符串
        • 正则替换与重组
        • 替换符号解析
        • 扩展应用:手机号脱敏
    • 8-15 零宽断言:精准锚定边界
      • 场景:提取含单位的金额
        • 正向断言(Lookahead)
        • 断言类型对比
    • 8-16 零宽断言应用:规范编号格式
      • 场景:统一产品编码格式
        • 正则标准化流程
        • 处理步骤解析

所有章节教程word文件可以点击如下链接获取
wps-excel办公+JS宏编程教程基础到进阶+函数使用手册

第8章 字符串技术与WPS结合应用


8-1 字符串的3种引用方式

场景:动态生成报表标题

假设需要将单元格中的产品名称和季度销量拼接为标题,例如将A1单元格的“手机”和B1单元格的“Q3”合并为“【手机】2023年Q3季度销售报告”。

三种引用方式对比
// 方式1:单引号(适合纯文本)
var str1 = '产品名称:' + Range("A1").Value2;// 方式2:双引号(与单引号等效)
var str2 = "季度:" + Range("B1").Value2;// 方式3:反引号(模板字符串,支持换行和插值)
var str3 = `${Range("A1").Value2}】2023年${Range("B1").Value2}季度销售报告`;
代码解析表
行号代码片段作用说明输入数据示例输出结果示例
2'产品名称:' + ...固定前缀拼接单元格值A1=“手机”“产品名称:手机”
5"季度:" + ...双引号拼接B1=“Q3”“季度:Q3”
8`【${...}】2023年...`模板字符串动态插入变量A1=“手机”, B1=“Q3”“【手机】2023年Q3季度销售报告”
模板字符串核心优势
  1. 多行文本:直接换行编写(如邮件模板)
    var emailTemplate = `尊敬的${Range("A1").Value2}客户:您的订单${Range("B1").Value2}已发货。
    `;
    
  2. 表达式计算:大括号内可写JS代码
    var discountInfo = `当前折扣:${Range("C1").Value2 * 10}%`;
    

8-2 字符串处理之切片与搜索

场景:提取身份证中的出生年份

从身份证号“510723199508120025”中提取“1995”年份信息。

三大截取方法对比
var idCard = "510723199508120025";// 方法1:substring(开始索引, 结束索引)
var year1 = idCard.substring(6, 10);  // "1995"// 方法2:slice(开始索引, 结束索引)(支持负数)
var year2 = idCard.slice(6, 10);      // "1995"// 方法3:substr(开始索引, 截取长度)
var year3 = idCard.substr(6, 4);      // "1995"
方法选择指南
需求推荐方法示例
已知起止位置substring截取身份证第7-10位(索引6-9)
需支持负数索引sliceslice(-4)获取末4位校验码
已知起始点和长度substr截取手机号前3位(substr(0,3)
索引搜索实战
// 查找@符号在邮箱中的位置
var email = "user_123@company.com";
var atIndex = email.indexOf("@");  // 返回7
var domain = email.slice(atIndex + 1);  // "company.com"// 安全写法:未找到时返回-1
if (email.indexOf("@") !== -1) {console.log("邮箱格式合法");
}

8-3 字符串处理之修改与填充

场景:规范商品编号

将不统一的编号格式如“A-5”“B12”统一为“A-0005”“B-0012”。

关键方法应用
function 格式化编号() {var rawData = ["A-5", "B12", "C-103"];var formattedData = [];rawData.forEach(code => {// 步骤1:移除所有非字母数字字符var cleaned = code.replace(/[^A-Z0-9]/gi, "");// 步骤2:拆分字母与数字var letters 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词