You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Peggy.js在JavaScript中解析字符串 修复星号位置识别异常问题

星号位置解析逻辑修复方案

你之前的代码仅处理了开头带*的分支,没有对尾部星号、首尾同时带星的场景做判断,因此其他场景返回结果异常。
你可以通过优先检测字符串首尾是否同时存在*,再分别判断单端星号的逻辑实现需求,核心代码如下:

const parser = {
  parse(str) {
    // 先分别判断首尾是否有星号
    const hasStartStar = str.startsWith('*');
    const hasEndStar = str.endsWith('*');
    let starStatus = 'no_star';
    let resultText = str;

    // 优先判断前后包裹的场景,避免被单端判断逻辑拦截
    if (hasStartStar && hasEndStar) {
      starStatus = 'wrapped';
      resultText = str.slice(1, -1);
    } else if (hasStartStar) {
      starStatus = 'start';
      resultText = str.slice(1);
    } else if (hasEndStar) {
      starStatus = 'end';
      resultText = str.slice(0, -1);
    }

    return {
      star: starStatus,
      text: resultText
    }
  }
}

使用你提供的示例输入测试:

console.log(parser.parse("*string"));
console.log(parser.parse("*string*"));
console.log(parser.parse("string*"));
console.log(parser.parse("string"));

输出结果完全匹配期望:

{star: "start", text: "string"}
{star: "wrapped", text: "string"}
{star: "end", text: "string"}
{star: "no_star", text: "string"}

内容的提问来源于stack exchange,提问作者Benk I

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:00:00