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)
需支持负数索引 slice slice(-4)获取末4位校验码
已知起始点和长度 substr 截取手机号前3位(substr(0,3)
索引搜索实战
// 查找@符号在邮箱中的位置
var email = "[email protected]";
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 

你可能感兴趣的:(wps,javascript,开发语言)