如何使用jquery将插入符后的连续数字转换为上标?

2024-02-04

这个问题与如何使用jquery将插入符号后的数字转换为上标 https://stackoverflow.com/questions/14813023/how-to-convert-numbers-after-caret-to-superscript-with-jquery/14813395我在那里得到了一个非常好答案 https://stackoverflow.com/a/14813395/1066234.

现在有问题,我需要延长最近的脚本 | jsfiddle http://jsfiddle.net/MBXTG/这样它就会考虑连续的数字。

最近的脚本采用一个字符串,并检查它是否有护理人员。然后:

  1. 如果插入符号后面没有括号,则仅在下一个字符上添加上标。x^2变成x<sup>2</sup>
  2. 如果有左括号,则上标直到右括号。x^(2y+1)变成x<sup>2y+1</sup>

但是,我需要扩展 n°1,因为可能有一个数字持有几位数字甚至变量.

所以我们需要一个新的 n°1:

  1. 如果插入符号后面没有括号,则为上标所有连续的字符只要它们是数字或字符。以便x^12a变成x<sup>12a</sup>

我尝试实现它,包括一个变量afternext = input[ (i+1) ])并通过检查这个字符if(afternext.match(/^[0-9a-zA-Z]+$/)) { ... }存储它,但我失败了:(

因此,如果今天有人感觉身体足够健康,我很高兴看到您的解决方案。

谢谢。


给你,先生 http://jsfiddle.net/MBXTG/3/。我对其进行了一些重构,以使用内部循环而不是缓冲区数组,因为附加的缓冲条件有点混乱。

// transform carets, e.g. x^2 to x<sup>2</sup> and x^(2y) to x<sup>2y</sup>
function superify(input) {
    if(!input) return input;
    var output = [];
    var alphanumeric = /^[a-z0-9]+$/i;
    var i = 0;
    var parens;

    //outer loop for iterating string
    while(i < input.length) {
        var current = input[i++];
        var next    = input[i];

        if(current === '^' && next && ((parens = (next === '(')) || next.match(alphanumeric))) {

            var first = next;

            //start super
            output.push('<sup>');
            if(!parens) 
                output.push(first);

            //push chars to output until break or string end
            while(i++ < input.length) {
                current = input[i];
                if(parens && current === ')')
                    break;
                if(!parens && !current.match(alphanumeric))
                    break;
                output.push(current);
            }

            output.push('</sup>');
            if(!parens) 
                output.push(current);
            i++;
        }
        else {
            output.push(current);
        }
    }

    return output.join('');
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用jquery将插入符后的连续数字转换为上标? 的相关文章

随机推荐

  • 如何向枚举添加扩展方法

    我有这个枚举代码 enum Duration Day Week Month 我可以为此枚举添加扩展方法吗 根据这个site http damieng com blog 2012 10 29 8 things you probably did
  • python 中的全局关键字

    我正在学习 python 并与其中的 global 关键字作斗争vscode 到目前为止 代码可以正常工作 但是vscodelinter 引发错误 我想了解原因 我尝试过使用 global 关键字 即使出现 linter 错误 代码也可以正
  • 从 Service Worker 中获取 Service Worker ID 或日期

    有谁知道是否有办法在服务人员内部获取此号码或日期 命名我的服务工作线程缓存会很方便cache 1182 or cache 20171127171448 我想在安装事件之前必须知道接收日期 不 这个东西不存在于Service Worker 规
  • Angular 2 - 将 URL 与路由匹配

    是否可以获取 URL 或路径并找出它在代码隐藏中匹配的路由 Ex Router matchRoute my route 返回有关匹配路由的信息 例如 path my route component HeroListComponent dat
  • 如何在XAML中创建类的实例?

    我想创建没有可视元素的简单实用程序类 并在 XAML 中创建它 以便我可以定义数据绑定 我尝试创建派生类DependencyObject并创建它Window Resources部分 但它不调用任何构造函数 您可以在 app xaml 中实例
  • strcpy() 中的分段错误

    我有这样的基本结构 typedef struct struck char id char mat int value char place Truck 像这样的函数创建该结构的新 实例 Truck CTruck char id char m
  • 在 Eclipse 中调试。在断点之间移动

    我正在 Eclipse 中调试 JAVA 代码 假设迭代循环内有 2 个断点 如何直接进入断点 同时在每次迭代时跳过其余代码 按 F8 这也是Resume按钮 这将带你到断点 从那里使用 F6 调试每一行 如果您想转到下一个断点 请按 F8
  • Apollo graphQL 中 useQuery 和 useLazyQuery 有什么区别?

    我正在浏览 Apollo React hooks 的文档 并看到有两个查询钩子可供使用 其中是useQuery and useLazyQuery 我正在读这一页 https www apollographql com docs react
  • 当在字符串中按下 QpushButton 时,如何在 QlineEdit 中获取文本?

    我正在尝试实现一个功能 我的代码如下 当用户单击名为 connect 的按钮时 我想在 shost 字符串中获取带有对象名 host 的 lineedit 中的文本 我怎样才能做到这一点 我尝试过但失败了 我该如何实现这个功能呢 impor
  • JavaScript - 挂钩对所有“点击”事件的一些检查

    因此 我有一个附加到几个按钮的常规 onclick 事件 处理 onclick 事件的每个函数都会执行不同的操作 因此我不能为这两个事件重用相同的函数 element1 onclick function if this classList
  • 系统中发现硒元素,但 Jenkins 中未发现

    我和我的团队最近开始使用 Selenium Web Driver 和 JUnit 开发自动化脚本 我面临一个问题 而且我真的不知道如何继续 任何建议都会有用 问题是 我有一个页面 在其中我以表单形式上传两个 Excel 然后按提交按钮确认上
  • ngx-datatable 页脚自定义

    如何自定义 ngx 数据表 我无法找到必须更改代码以删除记录总数并将其替换为下拉列表以显示每页项目的位置 我的分页也缺少一些图标 使用自定义页脚模板 请参阅下面的链接 所以它会覆盖默认的页脚 https github com swimlan
  • 如何使用 JQuery 按一个类查找元素,但排除其他元素

    我有多个元素 其中有一个类 li class target class exclude class li li class target class exclude class li li class target class li li
  • 当关闭文件方法抛出 IOException 时如何管理事务(包括文件 IO)

    我最近开始使用 Spring 的数据源事务管理器 我现在有问题 我的事务包括对数据库表的更新和对文件的写入操作 它工作正常 但我对文件 I O 有一些疑问 如下所示 我已将 bean 的 openFile 和 closeFile 方法分别配
  • sin(x) 对于 GLSL 片段着色器、Intel HD4000 上的中等大输入仅返回 4 个不同的值

    我有一个用 GLSL 编写的简单 OpenGL 3 3 片段着色器 本质上 我正在评估sin x 对于中等大的 x 10 000 到 2 000 000 之间 如下所示 version 330 out vec4 fColor void ma
  • 使用 SBT 在损坏的项目中运行测试

    在 Java Eclipse 项目中进行认真的重构时 我经常会破坏构建 但专注于一次通过一个测试 运行测试时 Eclipse 会警告该项目无法编译 但它仍然会运行它可以编译的测试 现在我正在使用 SBT 并希望通过 仅测试 实现相同的目标
  • 使用 Apple 登录 = invalid_client

    我面临着一个非常糟糕的问题 因为我阅读了很多指南和教程 但没有任何效果 结果总是一样的 error invalid client 我得到了代码 身份令牌和我需要的一切 除了调用https appleid apple com auth tok
  • FirebaseListAdapter.startListening() 中的错误

    您好 我的 Firebase 有问题 当我调试我的应用程序时出现错误 java lang NullPointerException 尝试在空对象引用上调用虚拟方法 void com firebase ui database Firebase
  • 计算数组中字符串的实例数

    我在 jQuery 中有一个数组 我需要计算该数组中 true 字符串的数量 然后使 numOfTrue 变量等于 true 字符串的数量 因此 在下面的数组中 有 2 个 true 字符串 因此 numOfTrue 将等于 2 var n
  • 如何使用jquery将插入符后的连续数字转换为上标?

    这个问题与如何使用jquery将插入符号后的数字转换为上标 https stackoverflow com questions 14813023 how to convert numbers after caret to superscri